实验二:Spark 集群构建

Copyright © 2019 @Linyer. All Rights Reserved

先准备好以下l两个包(点击以下载):
scala-2.10.7.tgz
spark-1.6.3-bin-hadoop2.6.tgz

上接实验一:Hadoop集群搭建

实验二建立在实验一的基础上!
点击以查看实验一

实验二:Spark 集群构建

上传解压 配置环境变量

  • SparkMaster 上:
  • 创建目录
mkdir /usr/lib/scala
mkdir /usr/lib/spark
  • 上传 Scala/usr/lib/scala 目录下。
  • 上传 Spark/usr/lib/spark 目录下。
  • 解压它们
cd /usr/lib/scala
tar -zxvf scala-2.10.7.tgz 
cd /usr/lib/spark
tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz
  • 环境变量配置,增加以下内容:
export SCALA_HOME=/usr/lib/scala/scala-2.10.7
export SPARK_HOME=/usr/lib/spark/spark-1.6.3-bin-hadoop2.6
export PATH=${SPARK_HOME}/bin:${SCALA_HOME}/bin:
source ~/.bashrc
  • 输入 scala -version查看是否配置成功。
  • 使用 scp 命令复制到 SparkWorker1SparkWorker2 上。
  • 如果发现 NetworkManagernetwork 冲突可执行以下命令关闭 NetworkManager
service NetworkManager stop

配置 Spark

SparkMaster 上

  • 进入 sparkconf 目录:
cd /usr/lib/spark/spark-1.6.3-bin-hadoop2.6/conf

修改 slaves 文件

  • 首先把 slaves.template 复制为 slaves
cp slaves.template slaves
  • 修改 slaves 文件内容为:
SparkWorker1
SparkWorker2

配置 spark-env.sh

  • 首先把 spark-env.sh.template 复制为 spark-env.sh
cp spark-env.sh.template spark-env.sh
  • 配置如下:
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export SCALA_HOME=/usr/lib/scala/scala-2.10.7
export HADOOP_HOME=/usr/lib/hadoop/hadoop-2.6.5
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export SPARK_MASTER_IP=SparkMaster
export SPARK_WORKER_MEMORY=1g

复制到 SparkWorker1 和 SparkWorker2 上

scp slaves root@SparkWorker1:/usr/lib/spark/spark-1.6.3-bin-hadoop2.6/conf
scp slaves root@SparkWorker2:/usr/lib/spark/spark-1.6.3-bin-hadoop2.6/conf
scp spark-env.sh root@SparkWorker1:/usr/lib/spark/spark-1.6.3-bin-hadoop2.6/conf
scp spark-env.sh root@SparkWorker2:/usr/lib/spark/spark-1.6.3-bin-hadoop2.6/conf

启动 Spark 分布式集群并查看信息

1. 启动 Hadoop 集群

  • 在 SparkMaster 使用 jps命令:
cd $HADOOP_HOME/sbin
./start-dfs.sh
./start-yarn.sh
./mr-jobhistory-daemon.sh start historyserver

2. 启动 Spark 集群

  • 启动操作如下:
cd $SPARK_HOME/sbin
./start-all.sh
  • 此时使用 jps命令,发现 SparkWorker1SparkWorker2 上都出现了新进程 Worker
    在这里插入图片描述
    在这里插入图片描述

  • 可以进入 Spark 集群 Web 页面,访问 http://192.168.80.131:8080,可以看到有两个 Worker 节点及这两个节点的信息:
    在这里插入图片描述

  • 此时进入Sparkbin 目录,使用 spark-shell 控制台。

cd $SPARK_HOME/bin
spark-shell

在这里插入图片描述

  • 此时进入 Sparkshell 世界,根据输出的提示信息,可以通过 http://192.168.80.131:4040Web 的角度看一下 SparkUI 的情况。
    在这里插入图片描述
  • 同时也可以看一下 Executors
    在这里插入图片描述
  • 至此,Spark 集群搭建成功!

测试 Spark 集群

  • Spark 安装包下文件 README.md 上传到 HDFS
cd $SPARK_HOME
hadoop fs -put README.md /data
  • 通过 http://192.168.80.131:50070/explorer.html#/dataWeb 控制台上发现成功上传了文件。
    在这里插入图片描述
  • 使用 MASTER=spark://SparkMaster:7077 ./spark-shell 命令启动 Spark shell
cd $SPARK_HOME/bin
MASTER=spark://SparkMaster:7077 ./spark-shell

在这里插入图片描述

  • 接下来通过以下命令读取刚刚上传到 HDFS 上的 README.md 文件:
val file = sc.textFile("hdfs://SparkMaster:9000/data/README.md")

在这里插入图片描述

  • 对读取的文件进行一下操作:
val count = file.flatMap(line => line.split("")).map(word => (word,1)).reduceByKey(_+_)

在这里插入图片描述

  • 接下来使用 collect 命令提交并执行 Job
count.collect

在这里插入图片描述

  • Web 控制台可以看到程序成功在集群上运行。
    在这里插入图片描述
    在这里插入图片描述
  • 上述信息表明程序成功在 Spark 集群上运行!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值