Hadoop與Spark整合

  1. 搭建Hadoop集羣
    搭建Hadoop集羣請參考博文《Hadoop集羣搭建及wordcount測試》,在此不再贅述。
  2. 安裝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常用參數,轉自其他博客。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章