我在 AWS 上运行最短路径示例时遇到问题。我通过 S3 下载了 giraph jar(在我正在使用的同一 AMI 中编译并在那里上传),在主站和从站中正确配置了 zookeper,我执行了以下步骤:
-
纳米/TMP/tiny_graph.txt
[0,0,[1,1,3,3]][1,0,[0,1,2,2,3,1]][2,0,[1,2,4,4]][3,0,[0,3,1,1,4,4]][4,0,[3,4,2,4]]
-
HDFS DFS -mkdir/user/hduser
/ - home/hadoop/bin/hdfs dfs -copyFromLocal/tmp/tiny_graph.txt/user/tiny_graph.txt
HDFS DFS -MKDIR/user/hduser/output
/home/hadoop/bin/yarn jar/home/hadoop/share/hadoop/yarn/lib/giraph.jar org.apache.giraph.GiraphRunner org.apache.giraph.examples.SimpleShortestPathsComputing(英语:vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip/user/hduser/input/tiny_graph.txt -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op/user/hduser/output/shortestpath -w 2
控制台向我显示了这一点,我对发生了什么一无所知:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
SLF4J: Found binding in
SLF4J: Found binding in
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type http://org.slf4j.impl.Log4jLoggerFactory
16/04/17 04:44:46 INFO utils.ConfigurationUtils: No edge input format specified. Ensure your InputFormat does not require one.
16/04/17 04:44:46 INFO utils.ConfigurationUtils: No edge output format specified. Ensure your OutputFormat does not require one.
16/04/17 04:44:46 INFO yarn.GiraphYarnClient: Final output path is: maprfs:/user/hduser/output/shortestpaths
16/04/17 04:44:46 INFO impl.TimelineClientImpl: Timeline service address: http://0.0.0.0:8188/ws/v1/timeline/
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.yarn.util.timeline.TimelineUtils.buildTimelineTokenService(Lorg/apache/hadoop/conf/Configuration;)Lorg/apache/hadoop/io/Text;
at org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.serviceInit(YarnClientImpl.java:156)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at org.apache.giraph.yarn.GiraphYarnClient.<init>(GiraphYarnClient.java:104)
at org.apache.giraph.GiraphRunner.run(GiraphRunner.java:83)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.giraph.GiraphRunner.main(GiraphRunner.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
任何帮助将不胜感激!
当我停止在AWS上使用MapR时,我解决了这个问题。出于某种原因,Giraph和MapR相处不好。