- 搭建Hadoop集羣
搭建Hadoop集羣請參考博文《Hadoop集羣搭建及wordcount測試》,在此不再贅述。 - 安裝Scala
在scala官網下載合適的版本,將scala安裝包拷貝到linux安裝目錄,執行解壓縮命令進行安裝:
sudo tar -zxvf scala-2.11.7.tgz -C /usr/opt/spark
解壓縮完成後,進入etc目錄,修改profile,追加以下內容
export SCALA_HOME=/usr/opt/spark/scala-2.11.7
export path=$SCALA_HOME/bin:$path
執行命令source /etc/profile
重新編譯profile文件,檢查scala安裝是否成功,執行scala -version
,如果正確安裝,會出現如下圖提示
3. 安裝Spark
在spark官網下載和hadoop配套的spark版本,將spark安裝包拷貝到linux安裝目錄,執行解壓縮命令
sudo tar -zxvf spark-1.5.2-bin-hadoop2.6.tgz -C /usr/opt/spark
修改/etc/profile文件,追加以下內容
export SPARK_HOME=/usr/opt/spark/spark-1.5.2-bin-hadoop2.6
export path=$SPARK_HOME/bin:$SPARK_HOME/sbin:$path
最終profile文件內容如下:
重新編譯profile文件。
進入spark根目錄/conf,執行命令
rm spark_env.sh.template spark_env.sh
使spark配置文件生效,利用vi命令修改此配置文件,追加以下內容:
export SCALA_HOME=/usr/opt/spark/scala-2.11.7
export SPARK_WORKER_MEMORY=512m
export JAVA_HOME=/usr/opt/java/jdk1.8.0_77
export SPARK_MASTER_IP=192.168.30.128
利用上述操作,使得log4j.properties文件生效,編輯slaves文件,將所有slave機器添加到文件中,如圖示
給hadoop用戶賦予對spark目錄的管理權限,命令如下
sudo chown -R czliuming:czliuming /usr/opt/spark
利用ssh將整個spark目錄拷貝到所有slave機器,命令如下:
scp -r /usr/opt/spark czliuming@ubuntu-slave:/usr/opt
如果拷貝失敗,請先在slave機器上建立spark目錄,保證hadoop用戶對此目錄有管理權限的情況下,逐項將spark目錄下的scala和spark安裝目錄拷貝到相應目錄下,然後,在slave機器上修改profile環境變量。
至此,spark安裝完畢,進入master機器spark安裝目錄,執行以下命令啓動spark集羣:
sbin/start-all.sh
啓動日誌如下圖所示:
打開瀏覽器,輸入http://192.168.30.128:8080查看spark集羣運行情況,如下圖所示:
4.Hadoop與Spark整合
所有服務器修改spark-env.sh文件,追加hadoop的配置文件路徑,內容如下:
export HADOOP-CONF-DIR=/usr/opt/hadoop/hadoop-2.6.3/etc/hadoop
進入hadoop安裝目錄,啓動hadoop集羣,命令如下
sbin/start-all.sh
進入spark安裝目錄,啓動spark集羣,啓動成功後,向hadoop yarn提交任務,命令如下:
spark-submit --master yarn-cluster --class org.apache.spark.examples.SparkLR --name SparkLR /usr/opt/spark/spark-1.5.2-bin-hadoop2.6/lib/spark-examples-1.5.2-hadoop2.6.0.jar
執行成功後進入hadoop WebUI查看任務執行情況,如下圖所示:
下面給出spark-submit常用參數,轉自其他博客。