阿里雲實現Hadoop+Spark叢集
阿新 • • 發佈:2019-01-03
前兩篇我已經介紹瞭如何在伺服器上搭建Hadoop環境已經Hadoop叢集,接下來我將介紹一下如何在Hadoop上搭建Spark叢集。(如果你還沒看過我前兩篇blog,那麼這篇你也可以看,不過還是建議先閱讀一下前兩篇bolg:手把手教你如何使用阿里雲搭建Hadoop環境,阿里雲搭建Hadoop叢集)。
準本工作
還是在之前的master節點和worker節點中進行搭建。
第一步下載Spark並解壓到software目錄中
wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz
tar zxvf spark-2.2 .0-bin-hadoop2.7.tg software/
第二步配置scala環境,因為後面準備用scala進行開發
下載scala
wget https://downloads.lightbend.com/scala/2.12.3/scala-2.12.3.tgz
解壓scala壓縮包到software
tar zxvf scala-2.12.3.tgz software/
第三步配置/etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/root/software/hadoop-2.8 .1
export SCALA_HOME=/root/software/scala-2.12.3
export SPARK_HOME=/root/software/spark-2.2.0-bin-hadoop2.7
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH
立即生效:source /etc/profile
第四步配置spark/conf/slaves
1. cp slaves.template slaves
2. vim slaves 新增worker
worker1
第五步配置spark/conf/spark-env.sh檔案
1. cp spark-env.sh.template spark-env.sh
2. vim spark-env.sh 新增如下內容
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export SCALA_HOME=/root/software/scala-2.12.3
export HADOOP_HOME=/root/software/hadoop-2.8.1
export SPARK_DIST_CLASSPATH=$(/root/software/hadoop-2.8.1/bin/hadoop classpath)
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_IP=master
至此master中的Spark環境久搭建好了,下面我們來開啟Spark。
進入到Spark中的sbin目錄下,執行start-all.sh開啟Spark
cd /root/software/spark-2.2.0-bin-hadoop2.7/sbin
./start-all.sh 這條命令相當於先執行./start-master.sh,在執行./start-slaves.sh
此時能在master中使用jps看到下圖,Master已經開啟了:
在worker中使用jps應該能看到worker已經開啟了,如下圖:
看到上面兩個圖,表示你的Spark叢集已經搭建好了,接下來告訴大家如何檢視Spark的Web控制檯。很多網上的教程都會在最後在瀏覽器中輸入http://master:4040
開啟Spark的Web控制器,粘一張Spark Web頁面的圖,但是隻通過上面的步驟,是不能開啟的Web控制的頁面。正確的姿勢如下:
cd /root/software/spark-2.2.0-bin-hadoop2.7/bin
./spark-shell.sh
之後才能在瀏覽器中輸入http://master:4040 才能看到如下的Web控制頁面
為什麼之前看不到呢?那是因為web控制器只在Spark提交job的時候才會顯示,使用./spark-shell.sh進入到Spark提交job的狀態,如下:
哈哈,接下來,大家就可以愉快的玩耍Spark叢集了。。。。。。