参考博文配置hbase+geomesa+geoserver,当执行下面步骤时:
$ java -cp geomesa-tutorials-hbase-quickstart-2.1.0-SNAPSHOT.jar org.geomesa.example.hbase.HBaseQuickStart
--hbase.zookeepers master
--hbase.catalog geomesa_hbase
master要替换成集群上zookeeper地址
zookeeper报错:geomesa_hbase表已存在。可能是之前导过的原因。
解决方法:用./zkCli.sh进入命令行,删掉hbase/table节点。将zoo.cfg中配置的data目录下的version-2文件删掉,再次导入数据会报下面错误:
KeeperException$NoNodeException: KeeperErrorCode 异常处理
Loading datastore
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Creating schema: GLOBALEVENTID:String,Actor1Name:String,Actor1CountryCode:String,Actor2Name:String,Actor2CountryCode:String,EventCode:String,NumMentions:Integer,NumSources:Integer,NumArticles:Integer,ActionGeo_Type:Integer,ActionGeo_FullName:String,ActionGeo_CountryCode:String,dtg:Date,geom:Point:srid=4326
java.lang.RuntimeException: Error running quickstart:
at org.geomesa.example.quickstart.GeoMesaQuickStart.run(GeoMesaQuickStart.java:92)
at org.geomesa.example.hbase.HBaseQuickStart.main(HBaseQuickStart.java:25)
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hbase.CoordinatedStateException): org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/table/geomesa_hbase
at org.apache.hadoop.hbase.zookeeper.ZKTableStateManager.setTableState(ZKTableStateManager.java:105)
at org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.assignRegions(CreateTableProcedure.java:456)
at org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:127)
at org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:59)
at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:139)
at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:499)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1163)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:958)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:911)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$400(ProcedureExecutor.java:79)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$2.run(ProcedureExecutor.java:502)
百思不得其解,我重启了zookeeper和hbase后,再次执行命令
$ java -cp geomesa-tutorials-hbase-quickstart-2.1.0-SNAPSHOT.jar org.geomesa.example.hbase.HBaseQuickStart
--hbase.zookeepers master
--hbase.catalog geomesa_hbase
master要替换成集群上zookeeper地址
,发现执行成功。