云计算技术课程实验

大三上学期云计算技术课程的实验部分总结。该实验主要是对于分布式计算环境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)

      将原来的

      
      
      

      修改为

      
          
              hadoop.tmp.dir
              /usr/local/Cellar/hadoop/hdfs/tmp
              A base for other temporary directories
          
          
              fs.default.name
              hdfs://localhost:9000
          
      
      
    • 修改mapred-site.xml(地址/usr/local/Cellar/hadoop/[version number]/libexec/etc/hadoop/mapred-site.xml)

      将原来的

      
      
      

      修改为

      
          
              mapred.job.tracker
              localhost:9010
          
      
      
    • 修改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投票选举问题

参考资料

  1. http://dblab.xmu.edu.cn/blog/820-2/
  2. http://dblab.xmu.edu.cn/blog/1661-2/
  3. https://spark.apache.org/docs/latest/graphx-programming-guide.html
  4. 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.
  5. https://blog.csdn.net/lengxingxing/article/details/69568304
  6. https://www.cnblogs.com/SpeakSoftlyLove/p/7485449.html

你可能感兴趣的:(课程项目)