2017-09-17 12 views
0

私はgeomesa追加属性インデックスは

geomesa add-attribute-index -u root -p secret -i gis -z SERVER_IP -c posiciones -f posicion -a id_posicion --coverage join 

(accumulo-マスタードッキングウィンドウの画像内で実行)以下のコマンドを使用して、私の既存のテーブルにindexを追加しようとしています。しかし、それは仕事と、この出力を生成しない障害が発生しました:

INFO Running map reduce index job for attributes: [id_posicion] with coverage: join... 
ERROR Error encountered running attribute index command. Check hadoop's job history logs for more information. 

Hadoopのジョブ・ログには、以下の通りです:

2017-09-17 20:39:48,253 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Created MRAppMaster for application appattempt_1505353025896_0020_000002 
2017-09-17 20:39:48,706 WARN [main] org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
2017-09-17 20:39:48,757 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Executing with tokens: 
2017-09-17 20:39:49,079 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Kind: YARN_AM_RM_TOKEN, Service: , Ident: (appAttemptId { application_id { id: 20 cluster_timestamp: 1505353025896 } attemptId: 2 } keyId: -1893920016) 
2017-09-17 20:39:49,094 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Using mapred newApiCommitter. 
2017-09-17 20:39:49,095 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: OutputCommitter set in config org.apache.hadoop.mapred.DirectFileOutputCommitter 
2017-09-17 20:39:49,173 INFO [main] org.apache.hadoop.service.AbstractService: Service org.apache.hadoop.mapreduce.v2.app.MRAppMaster failed in state INITED; cause: org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.accumulo.core.client.mapreduce.AccumuloOutputFormat not found 
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.accumulo.core.client.mapreduce.AccumuloOutputFormat not found 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$2.call(MRAppMaster.java:519) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$2.call(MRAppMaster.java:499) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.callWithJobClassLoader(MRAppMaster.java:1594) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.createOutputCommitter(MRAppMaster.java:499) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.serviceInit(MRAppMaster.java:284) 
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$5.run(MRAppMaster.java:1552) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:422) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.initAndStartAppMaster(MRAppMaster.java:1549) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1482) 
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.accumulo.core.client.mapreduce.AccumuloOutputFormat not found 
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195) 
at org.apache.hadoop.mapreduce.task.JobContextImpl.getOutputFormatClass(JobContextImpl.java:223) 
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$2.call(MRAppMaster.java:516) 
... 11 more 
Caused by: java.lang.ClassNotFoundException: Class org.apache.accumulo.core.client.mapreduce.AccumuloOutputFormat not found 
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2101) 
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2193) 
... 13 more 

任意のアイデア?

答えて

3

これはおそらくバグです。ロードするジャーはfileに定義されています。おそらく、新しいバージョンのaccumuloのためにファイルを更新する必要があります。欠けているクラスは、今度はaccumulo-core jarにあるようです。ツール配布のlib/geomesa-accumulo-jobs-<version>.jarに終わるファイルにaccumulo-coreという行を追加することで修正できるはずです。

+1

「accumulo-core」と「parboiled」の両方をそのファイルに追加する必要がありましたが、これらの変更で動作することを確認しました。私はここに修正のための広報を出しました:https://github.com/locationtech/geomesa/pull/1700 –

+0

素晴らしい、それは働いた! – jramirez

0

$ ACCUMULO_HOMEは設定されていますか?そして、他のジオメサコマンドも使えますか?

Accumuloディストリビューションのコピーを指すように$ ACCUMULO_HOMEを設定すると役立ちます。クラスタの一部ではないマシンからGeoMesaツールを使用している場合は、ツール配布のinstall-hadoop-accumulo.shスクリプトを使用して、必要な依存関係のコピーを$ GEOMESA_HOME/libにダウンロードできます。

+0

$ ACCUMULO_HOMEが正しく設定されています。私がgeomesaを実行すると、describe-schema -u root -i user -p pass -c posiciones -f posicionが問題なく動作します。 – jramirez

関連する問題