在Hadoop YARN之上配置Spark集群(二)

来源:互联网 发布:世界大数据学校排名 编辑:程序博客网 时间:2024/04/29 14:03

在上一篇中,我介绍了关于Hadoop完全分布式的配置,从上一篇博文到现在,这期间由于种种原因一直未能记录Spark集群的配置,今天补上。上篇博文中只是一个简单的测试实验,集群数目也不多,今天增加了一台。由于Spark集群的配置需要在Hadoop的基础之上,所以没配Hadoop的同学请看上一篇博文。

环境介绍

  • 系统:Ubuntu14.04 64位
  • JDK版本:jdk 1.7
  • Hadoop版本:hadoop 2.7.2
  • Spark版本:spark 1.6.0
  • Scala版本: scala 2.10.4
  • 集群环境:

    角色 hostname IP master wlw 192.168.1.112 slave1 wlw1 192.168.1.101 slave2 wlw2 192.168.1.121

环境变量配置

需要为Spark和Scala配置环境变量,根据你自己的存放路径进行相应的更改,具体如下:

# for spark environment export SPARK_HOME=/opt/spark-1.6.0-bin-hadoop2.6export PATH=$SPARK_HOME/bin:$PATH# for scala environmentexport SCALA_HOME=/opt/scala-2.10.4export PATH=$SCALA_HOME/bin:$PATH

需要在master和slave上都进行配置

Spark配置

  • 修改spark的spark环境文件
    cd /opt/spark-1.6.0-bin-hadoop2.6/conf/
    cp spark-env.sh.template spark-env.sh

    export SPARK_MASTER_IP=192.168.1.112export SPARK_MASTER_PORT=7077export SPARK_WORKER_CORES=4export SPARK_WORKER_MEMORY=3gexport SPARK_EXECUTOR_INSTANCES=2export SPARK_MASTER_WEBUI_PORT=8090export SPARK_WORKER_PORT=8092export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}# control executor memoryexport SPARK_EXECUTOR_MEMORY=3g
  • 将Hadoop配置文件core-site.xml和hdfs-site.xml复制到spark-1.6.0-bin-hadoop2.6/conf/中
  • 设置slaves
    cd spark-1.6.0-bin-hadoop2.6/conf/
    vim slaves

    wlw1wlw2
  • 从master上分发Spark和Scala到每一台slave,建议先打包再分发
    cd /opt
    sudo tar -zcf ./spark-1.6.0-bin-hadoop2.6.tar.gz ./spark-1.6.0-bin-hadoop2.6
    scp ./spark-1.6.0-bin-hadoop2.6.tar.gz wlw1:/home/hadoop


    cd /opt
    sudo tar -zcf ./scala-2.10.4.tar.gz ./scala-2.10.4
    scp ./scala-2.10.4.tar.gz wlw1:/home/hadoop

  • 在slave(wlw1和wlw2)节点上执行:
    sudo tar -zxf ~/spark-1.6.0-bin-hadoop2.6.tar.gz -C /opt/
    sudo chown -R hadoop:hadoop /opt/spark-1.6.0-bin-hadoop2.6


    sudo tar -zxf ~/scala-2.10.4.tar.gz -C /opt/
    sudo chown -R hadoop:hadoop /opt/scala-2.10.4

启动Spark

如上都配置完成之后,在master节点上就可以启动spark了,前提是先启动Hadoop:

  • 启动Hadoop:
    cd /opt/hadoop-2.7.2
    ./sbin/start-dfs.sh
    ./sbin/start-yarn.sh

  • 启动Spark:
    cd /opt/spark-1.6.0-bin-hadoop2.6
    ./sbin/start-all.sh

  • 通过 jps 命令查看master(wlw)节点的Hadoop和Spark进程:

    12630 SecondaryNameNode12339 NameNode13221 Master32203 Jps12863 ResourceManager27907 SparkSubmit
  • 通过 jps 命令查看slave(wlw1和wlw2)节点的Hadoop和Spark进程:

    6536 Worker6215 DataNode6356 NodeManager6597 Jps
  • 通过Web页面看到查看节点的状态:
    http://wlw:8090
    这里写图片描述

测试

  • 依旧测试wordcount

    val textFile = sc.textFile("hdfs://wlw:9000/input/file4.txt")val counts = textFile.flatMap(line => line.split(" "))                 .map(word => (word, 1))                 .reduceByKey(_ + _)counts.saveAsTextFile("hdfs://wlw:9000/output/wordcount3")
  • 查看结果这里写图片描述

至此,spark on yarn模式,全部完成。

0 0