實驗二: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 集羣上運行!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章