大三上学期云计算技术课程的实验部分总结。该实验主要是对于分布式计算环境Spark进行配置以及利用开源图计算平台GraphX实现pagerank算法。
开发环境搭建
java开发环境搭建
使用java --version
查看java版本及安装情况。
安装Hadoop
使用brew install hadoop
安装Hadoop。
测试Hadoop单机模式
使用Hadoop附带的示例来测试单机模式是否运行正常。通过brew安装的Hadoop附带的示例在路径/usr/local/Cellar/hadoop/[version number]/libexec/share/hadoop/mapreduce
-
创建input目录和测试文件
cd /usr/local/Cellar/hadoop/[version number]
mkdir input
cd input
echo 'hello world' > file1.txt
echo 'hello hadoop' > file2.txt
-
运行示例测试单机模式
hadoop jar ./libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-[version number].jar wordcount ./input ./output
-
查看结果
more output/part-r-00000
hadoop 1 hello 2 world 1
测试Hadoop伪分布式模式
-
ssh登陆本地:首先生成ssh公钥,之后通过ssh登陆本地
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh localhost
macOS进行ssh登陆本地时,需要允许【系统偏好设置-共享-远程登陆】
-
修改相应的配置文件将单机模式改为伪分布式模式
-
修改
core-site.xml
(地址/usr/local/Cellar/hadoop/[version number]/libexec/etc/hadoop/core-site.xml
)将原来的
<configuration> </configuration>
修改为
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/Cellar/hadoop/hdfs/tmp</value> <description>A base for other temporary directories</description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
-
修改
mapred-site.xml
(地址/usr/local/Cellar/hadoop/[version number]/libexec/etc/hadoop/mapred-site.xml
)将原来的
<configuration> </configuration>
修改为
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9010</value> </property> </configuration>
-
修改
hdfs-site.xml
(地址/usr/local/Cellar/hadoop/[version number]/libexec/etc/hadoop/hdfs-site.xml
)
-
-
运行
hadoop namenode -format ./sbin/start-all.sh
-
用自带示例测试
-
估算圆周率pi的值
hadoop jar ./libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-[version number].jar pi 2 5
-
运行wordcount
-
把用于单机模式的input上传到hdfs
hadoop fs -put ./input input
-
运行wordcount
hadoop jar ./libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-[version number].jar wordcount input output
-
查看output的结果
hadoop fs -tail output/part-r-00000
hadoop 1 hello 2 world 1
-
-
-
关闭伪分布式
./sbin/stop-all.sh
安装Spark
使用brew install apache-spark
安装spark
安装后需要修改Spark的配置文件spark-env.sh
cd /usr/local/Cellar/apache-spark/2.4.5
cp ./libexec/conf/spark-env.sh.template ./libexec/conf/spark-env.sh
编辑spark-env.sh文件(vim ./libexec/conf/spark-env.sh),在第一行添加以下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
通过Spark自带的示例可以验证是否安装成功:
bin/run-example SparkPi 2>&1 | grep "Pi is"
实验部分
实验一:GraphX API练习
实验二:使用Pagerank解决Wiki投票选举问题
参考资料
- http://dblab.xmu.edu.cn/blog/820-2/
- http://dblab.xmu.edu.cn/blog/1661-2/
- https://spark.apache.org/docs/latest/graphx-programming-guide.html
- Malewicz G, Austern M H, Bik A J, et al. Pregel: a system for large-scale graph processing[C]. international conference on management of data, 2010: 135-146.
- https://blog.csdn.net/lengxingxing/article/details/69568304
- https://www.cnblogs.com/SpeakSoftlyLove/p/7485449.html