在hadoop伪分布式环境下运行pagerank程序

首先安装虚拟机,网上教程很多,基于VM的,然后搭建hadoop伪分布式教程:
http://dblab.xmu.edu.cn/blog/install-hadoop/
在安装完成后,可以查看pagerank的基本知识,程序也是使用下面的程序
https://blog.csdn.net/u010414589/article/details/51404971

完成上述两部后,具体操作如下:

1.将java程序生成jar包
将JAVA程序生成jar包,分为两个步骤:1.运行java文件生成class文件2.将class文件生成jar包,命令如下图所示。

javac PageRank.java

在这里插入图片描述
运行java文件后,我们发现在桌面上生成了多个.class文件,表示java文件运行成功,如下图所示。
在这里插入图片描述

生成java文件后,还需要将它生成.jar文件,命令语句如下图所示。在这之后,桌面上就生成了一个pagerank.jar文件。

jar cvf ./pagerank.jar ./*.class

图6 将class文件生成jar文件

2.打开Hadoop伪分布式环境
再进入Hadoop伪分布式环境:1.进入Hadoop路径下2.启动Hadoop伪分布式环境,命令如下图所示。

cd /usr/local/hadoop
./sbin/start-dfs.sh

图7 打开Hadoop伪分布式环境
验证是否已经打开Hadoop环境下的伪分布式,在终端中输入命令:jps。生成下图,其中NameNode表示主机,DataNode表示子节点,SecondaryNameNode表示合并NameNode的edit logs到fsimage文件中,是用于辅助NameNode。

jps

图8 检验是否打开Hadoop伪分布式环境

3.运行pagerank.jar
运行pagerank.jar文件和pagerank.txt文件分为以下几个步骤:1.创建input文件夹2.将input.txt文件放入hdfs下面的input文件夹下3.把txt文件使用jar运行。
首先创建input文件夹,用于存放txt文件夹。运行程序必须都在hdfs路径环境下,因此命令如下:

./bin/hdfs dfs -mkdir /input

图9 创建input文件夹
再将pagerank.txt放到input文件夹中,命令如下所示:

./bin/hdfs dfs -put ~/Desktop/pagerank.txt /input
./bin/hdfs dfs -ls /input

图10 将txt文件放入input文件夹下
第一个框中命令语句意思为:将桌面上的pagerank.txt文件放入input文件夹下,第二个语句意思是查看input文件夹下的文件列表,我们看到有一个pagerank.txt文件,就是我们刚刚移动的文件。打开桌面上的txt文件,显示下图内容。A 0.25 B C D,这句话的含义是总共有四个网页进行排序,因此每个pagerank初始值为0.25,B C D 表示通过A可以链接到的页面。很明显,到C的值是最大的,理论上C的输出pagerank值最大,而且C陷入了蜘蛛陷阱。

图11 txt文件内容
最后使用txt文件运行jar文件,命令语句如下图所示。

./bin/hadoop jar ~/Desktop/pagerank.jar PageRank /input/pagerank.txt /output

图12 运行程序
语句含义为运行pagerank.jar文件,输入数据为input文件夹下的pagerank.txt文件,输出到output文件夹下。这里output文件夹不需要像input文件夹那样创建,它会自动生成。

4.查看结果
首先查看output路径下的文件,命令如下所示,显示结果发现有两个文件,其中一个为success文件,表示程序运行成功,另一个即为输出文件。

./bin/hdfs dfs -ls /output

图13 显示output文件内容
最后打开part-r-00000文件,这就是最终的输出结果。我们可以看到,各个网页的pagerank值都发生了变化,从输出结果上看,C的pagerank值最大,且并未陷入蜘蛛陷阱,这与实际理论相符。

./bin/hdfs dfs -cat /output/part-r-00000

图14 输出结果
以上均为自己手打,如果有错误之处,请指正

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值