Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-beta1
-
None
-
Reviewed
Description
When I run the schema creator tool of timeline service v2, then an error happened with the error message below:
17/08/30 16:04:18 INFO zookeeper.ClientCnxn: Session establishment complete on server zdh175/10.43.183.175:2181, sessionid = 0x15e0d065a330019, negotiated timeout = 180000
17/08/30 16:04:18 WARN util.HeapMemorySizeUtil: hbase.regionserver.global.memstore.upperLimit is deprecated by hbase.regionserver.global.memstore.size
17/08/30 16:04:18 ERROR storage.TimelineSchemaCreator: Error in creating hbase tables: java.lang.reflect.InvocationTargetException
17/08/30 16:04:18 WARN storage.TimelineSchemaCreator: Schema creation finished with the following exceptions
17/08/30 16:04:18 WARN storage.TimelineSchemaCreator: java.lang.reflect.InvocationTargetException
But I can't tell which error caused this exception with message.
Then I find it only print the exception message in TimelineSchemaCreator
try { ...... } catch (IOException e) { LOG.error("Error in creating hbase tables: " + e.getMessage()); exceptions.add(e); }
I change it like this
try { ...... } catch (IOException e) { LOG.error("Error in creating hbase tables: ", e); exceptions.add(e); }
finally, I get the detail of this error, and it's caused by a directory of hbase not created.
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:648)
... 10 more
Caused by: java.lang.RuntimeException: Failed to create local dir /data1/zdh/hbase/tmp/RegionServer/local/jars, DynamicClassLoader failed to init
at org.apache.hadoop.hbase.util.DynamicClassLoader.initTempDir(DynamicClassLoader.java:110)
at org.apache.hadoop.hbase.util.DynamicClassLoader.<init>(DynamicClassLoader.java:98)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.<clinit>(ProtobufUtil.java:244)
... 15 more
17/08/30 16:03:42 WARN storage.TimelineSchemaCreator: Schema creation finished with the following exceptions
17/08/30 16:03:42 WARN storage.TimelineSchemaCreator: java.lang.reflect.InvocationTargetException
As the exception message is not enough to find out the error, so I think print all the information of the exception in TimelineSchemaCreator is better.