Не удалось найти или загрузить основной класс 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/
затем запустите свою работу