Spark安裝與配置

Spark安裝與配置

Standalone模式

構建一個由Master+Slave構成的Spark集羣,Spark運行在集羣中。

軟件依賴與版本號

安裝Hive的前提條件是已經部署了Hadoop和Scala。具體安裝Hadoop的方法見前面發的文章Hadoop僞分佈式安裝,安裝Scala的方法見前面發的文章Kafka安裝與配置。部署軟件版本號如下所示:

軟件名稱 版本號
Hadoop 2.9.2
Spark 2.4.4
Scala 2.12.6

節點分配

名稱 ip hostname
主節點 192.168.153.128 master
子節點1 192.168.153.129 slave01
子節點2 192.168.153.130 slave02

安裝Spark

1. 下載Spark並上傳到服務器後解壓

tar xzvf spark-2.4.4-bin-hadoop2.7.tgz
mv spark-2.4.4-bin-hadoop2.7 /usr/local/spark

2. 修改配置文件

配置文件路徑在 /usr/local/spark/conf 目錄下。

  1. spark-env.sh

    需要先將conf目錄下 spark-env.sh.template 重命名爲 spark-env.sh ,並添加如下內容

    export SCALA_HOME=/usr/local/scala
    export JAVA_HOME=/usr/local/java
    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    SPARK_MASTER_IP=master
    SPARK_LOCAL_DIRS=/usr/local/spark
    SPARK_DRIVER_MEMORY=512M
    
  2. slaves

    先將 slaves.template 重命名爲 slaves ,然後添加如下內容

    slave01
    slave02
    

3. 修改環境變量

vi /etc/profile

然後添加如下內容:

export SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH

最後生效

source /etc/profile

4. 拷貝到子節點

scp -r /usr/local/spark/ root@slave01:/usr/local
scp -r /usr/local/spark/ root@slave02:/usr/local

5. 啓動Spark

必須先啓動hadoop,然後再啓動Spark

cd /usr/local/spark/sbin
sh start-all.sh
sh start-history-server.sh

6. 啓動Spark Shell界面

spark-shell --master spark://master:7077

測試

> spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/usr/local/spark/examples/jars/spark-examples_2.11-2.4.4.jar \
100

Yarn模式

Spark客戶端直接連接Yarn,不需要額外構建Spark集羣。有yarn-client和yarn-cluster兩種模式,主要區別在於:Driver程序的運行節點

  • yarn-client :Driver程序運行在客戶端,適用於交互、調試,希望立即看到app的輸出

  • yarn-cluster :程序運行在由RM(ResourceManager)啓動的AP(APPMaster)適用於生產環境。

基於Standalone模式,繼續修改配置文件。

修改配置文件

  1. yarn-site.xml

    cd /usr/local/hadoop/etc/hadoop
    vi yarn-site.xml
    

    添加如下內容:

    <!--是否啓動一個線程檢查每個任務正使用的物理內存量,如果任務超出分配值,則直接將其殺掉,默認是true -->
    <property>
    	<name>yarn.nodemanager.pmem-check-enabled</name>
    	<value>false</value>
    </property>
    <!--是否啓動一個線程檢查每個任務正使用的虛擬內存量,如果任務超出分配值,則直接將其殺掉,默認是true -->
    <property>
    	<name>yarn.nodemanager.vmem-check-enabled</name>
    	<value>false</value>
    </property>
    
  2. spark-env.sh

    cd /usr/local/spark/conf
    vi spark-env.sh
    

    添加如下內容:

    YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop
    
  3. 將修改的配置文件同步到集羣其他服務器上。

重啓Spark和Hadoop

cd /usr/local/spark/sbin/
sh stop-all.sh

cd /usr/local/hadoop/sbin/
sh stop-dfs.sh
sh stop-yarn.sh

sh start-dfs.sh
sh start-yarn.sh

cd /usr/local/spark/sbin/
sh start-all.sh

測試

> spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
/usr/local/spark/examples/jars/spark-examples_2.11-2.4.4.jar \
100

發佈了45 篇原創文章 · 獲贊 69 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章