首先安装虚拟机,网上教程很多,基于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
2.打开Hadoop伪分布式环境
再进入Hadoop伪分布式环境:1.进入Hadoop路径下2.启动Hadoop伪分布式环境,命令如下图所示。
cd /usr/local/hadoop
./sbin/start-dfs.sh
验证是否已经打开Hadoop环境下的伪分布式,在终端中输入命令:jps。生成下图,其中NameNode表示主机,DataNode表示子节点,SecondaryNameNode表示合并NameNode的edit logs到fsimage文件中,是用于辅助NameNode。
jps
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
再将pagerank.txt放到input文件夹中,命令如下所示:
./bin/hdfs dfs -put ~/Desktop/pagerank.txt /input
./bin/hdfs dfs -ls /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陷入了蜘蛛陷阱。
最后使用txt文件运行jar文件,命令语句如下图所示。
./bin/hadoop jar ~/Desktop/pagerank.jar PageRank /input/pagerank.txt /output
语句含义为运行pagerank.jar文件,输入数据为input文件夹下的pagerank.txt文件,输出到output文件夹下。这里output文件夹不需要像input文件夹那样创建,它会自动生成。
4.查看结果
首先查看output路径下的文件,命令如下所示,显示结果发现有两个文件,其中一个为success文件,表示程序运行成功,另一个即为输出文件。
./bin/hdfs dfs -ls /output
最后打开part-r-00000文件,这就是最终的输出结果。我们可以看到,各个网页的pagerank值都发生了变化,从输出结果上看,C的pagerank值最大,且并未陷入蜘蛛陷阱,这与实际理论相符。
./bin/hdfs dfs -cat /output/part-r-00000
以上均为自己手打,如果有错误之处,请指正