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

本文档详细介绍了在Ubuntu 14.04环境下,基于Hadoop YARN配置Spark集群的步骤,包括环境介绍、环境变量配置、Spark配置、启动Spark以及测试。内容涉及JDK 1.7、Hadoop 2.7.2、Spark 1.6.0和Scala 2.10.4的安装与配置,以及如何在多台机器上分发和启动Spark。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇中,我介绍了关于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
  • 集群环境:

    角色hostnameIP
    masterwlw192.168.1.112
    slave1wlw1192.168.1.101
    slave2wlw2192.168.1.121
环境变量配置

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

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

# for scala environment
export SCALA_HOME=/opt/scala-2.10.4
export 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.112
    export SPARK_MASTER_PORT=7077
    export SPARK_WORKER_CORES=4
    export SPARK_WORKER_MEMORY=3g
    export SPARK_EXECUTOR_INSTANCES=2
    
    export SPARK_MASTER_WEBUI_PORT=8090
    export SPARK_WORKER_PORT=8092
    export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
    
    # control executor memory
    
    export 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

    wlw1
    wlw2
  • 从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 SecondaryNameNode
    12339 NameNode
    13221 Master
    32203 Jps
    12863 ResourceManager
    27907 SparkSubmit
    
  • 通过 jps 命令查看slave(wlw1和wlw2)节点的Hadoop和Spark进程:

    6536 Worker
    6215 DataNode
    6356 NodeManager
    6597 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模式,全部完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值