【问题标题】:Doubts regarding Pagerank execution对 Pagerank 执行的质疑
【发布时间】:2012-03-25 15:54:44
【问题描述】:

我正在尝试执行以下代码:http://blog.xebia.com/2011/09/27/wiki-pagerank-with-hadoop/

javac 没有显示错误,但我不知道如何获取输出?这些是我正在遵循的执行步骤:

$ javac -Xlint -classpath /home/james/Downloads/hadoop-0.20.203.0/hadoop-core-0.20.203.0.jar -d  doc WikiPageRanking.java
$ jar -cvf WikiPageRanking.jar -C doc/ .
$ bin/hadoop dfs -mkdir /user/james/wiki/in
$ bin/hadoop dfs -copyFromLocal wiki-micro.txt /user/james/wiki/in
$ bin/hadoop jar WikiPageRanking.jar org.myorg.WikiPageRanking /user/james/wiki/in /user/james/wiki/result

这是对的吗?我严重怀疑最后一步——输入和输出路径!!在代码中,他们使用了 wiki/in,这就是为什么我在这里给出了相同的路径,并且我已经将我的示例数据集复制到了这个路径。 map reduce 过程开始,但我没有输出!!

【问题讨论】:

    标签: hadoop pagerank


    【解决方案1】:

    以下命令给你什么:

    hadoop fs -ls /user/james/wiki/result
    
    hadoop fs -text /user/james/wiki/result/part*
    

    运行作业不会自动将作业结果转储到控制台 - 它们通常存储在 HDFS 中(在您的情况下,在路径 /user/james/wiki/result 中)。您可以使用第一个命令查看该目录的内容,假设有一些 part* 文件,第二个命令会将其内容转储到磁盘

    最后一点要注意 - 如果输出格式是 SequenceFileOutputFormat 并且您使用的是自定义键/值对象,则需要修改第二个命令以包含您的 jar:

    hadoop fs -libjars WikiPageRanking.jar -text /user/james/wiki/result/part*
    

    【讨论】:

    • 当我执行前2个命令时它说没有这样的文件,因为我猜它存储在hdfs中,而不是本地文件系统中。
    • /user 通常是 HDFS 中的用户主目录(与 *nix 中的 /home 相反),因此您正在查看 HDFS(除非您的 hadoop 配置已配置为使用本地文件系统作为默认)。你的工作真的成功了吗?
    • 是的,mapreduce 任务也完成了,但是输出文件仍然是空的
    • 您对 WikiPageRanking 的实施与原始实施有何不同? github.com/abij/hadoop-wiki-pageranking/blob/master/src/com/… - 因为这会忽略命令行参数
    • 你能帮我做一个 hadoop fs -ls /user/james/wiki/ranking 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2020-08-01
    • 2015-01-01
    • 1970-01-01
    • 2014-02-03
    相关资源
    最近更新 更多