Geomesa add-attribute-index не работает

Я пытаюсь добавить индекс в мою существующую таблицу с помощью следующей команды (выполнить внутри образа докера accumulo-master)

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

Но он не работает и выдает такой вывод:

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

Есть идеи?


person jramirez    schedule 17.09.2017    source источник


Ответы (2)


Вероятно, это ошибка — загружаемые банки определяются в этом файл. Вероятно, файл необходимо обновить для более новых версий accumulo — отсутствующий класс теперь находится в банке accumulo-core. Вы должны быть в состоянии исправить это, добавив строку accumulo-core в этот файл, который заканчивается в lib/geomesa-accumulo-jobs-<version>.jar в дистрибутиве инструментов.

person Emilio Lahr-Vivaz    schedule 18.09.2017
comment
Мне пришлось добавить в этот файл и accumulo-core, и parboiled, но я убедился, что он работает с этими изменениями. Я разместил PR для исправления здесь: github.com/locationtech/geomesa/pull/ 1700 - person Emilio Lahr-Vivaz; 18.09.2017

$ACCUMULO_HOME установлен? И работают ли другие команды геомезы?

Установка $ACCUMULO_HOME для указания на копию дистрибутива Accumulo, скорее всего, поможет. Если вы используете инструменты GeoMesa с компьютера, который не является частью кластера, вы можете использовать скрипт install-hadoop-accumulo.sh в дистрибутиве инструментов, чтобы загрузить копию необходимых зависимостей в $GEOMESA_HOME/lib.

person GeoMesaJim    schedule 17.09.2017
comment
$ACCUMULO_HOME установлен правильно. Если я запускаю geomesa description-schema -u root -i user -p pass -c posiciones -f position, он работает без проблем. - person jramirez; 18.09.2017