Не удалось найти или загрузить основной класс org.apache.giraph.yarn.GiraphApplicationMaster

Я пытаюсь запустить Giraph на кластере YARN (Hadoop 2.5.2), но я застрял в этой ошибке:

Could not find or load main class org.apache.giraph.yarn.GiraphApplicationMaster

Я перепробовал все, что могу найти в предыдущих сообщениях на эту тему, но безрезультатно. Моя командная строка выглядит так:

hadoop jar /home/prhodes/giraph/giraph-examples/target/giraph-examples-1.2.0-SNAPSHOT-for-hadoop-2.5.2-jar-with-dependencies.jar org.apache.giraph.GiraphRunner org.apache.giraph.examples.SimpleShortestPathsComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip /user/prhodes/input/tiny_graph.txt -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op /user/prhodes/giraph_output/shortestpaths -w 4 -yj /home/prhodes/giraph/giraph-examples/target/giraph-examples-1.2.0-SNAPSHOT-for-hadoop-2.5.2-jar-with-dependencies.jar,/home/prhodes/giraph/giraph-core/target/giraph-1.2.0-SNAPSHOT-for-hadoop-2.5.2-jar-with-dependencies.jar

Я проверил, что эти банки находятся в тех местах на каждом узле в кластере. Кроме того, я убедился, что файл jar содержит GiraphApplicationMaster.class. И все же он все еще жалуется на то, что не нашел GiraphApplicationMaster.

Любые идеи, что еще может быть причиной проблемы, или какие-либо обходные пути? Я думал о том, чтобы распределить банки Giraph по каждому узлу и физически поместить их в путь классов Hadoop, но сборка Maven по умолчанию создает толстые банки, что, вероятно, может вызвать проблемы при этом. Любые другие предложения или идеи?

1 ответ

Я решил эту проблему с помощью команд:

cp $GIRAPH_HOME/giraph-examples/target/giraph-examples-1.1.0-for-hadoop-2.6.0-jar-with-dependencies.jar $HADOOP_HOME/share/hadoop/yarn/lib/

cp $GIRAPH_HOME/giraph-examples/target/ $HADOOP_HOME/share/hadoop/yarn/lib/

затем запустите свою работу

Другие вопросы по тегам