spark 部署環境搭建


spark下載地址:http://spark.apache.org/downloads.html 

hadoop下載地址:https://downloads.apache.org/hadoop/common/

博主spark版本選擇的是2.4.5 所以對應的hadoop版本是2.7.7

下載之后直接上傳到linux,解壓之后就可以啦,不過首先要先配置java環境

jdk必須在1.8以上

 

 

 配置好jdk后解壓hadoop和spark

 

 

 然后進入spark目錄

運行./bin/spark-shell

 

 

 出現如上圖所示邊上spark環境部署好了

然后做一個小測試

在spark目錄下創建兩個文件,在文件中隨便輸入幾個單詞,然后統計下每個單詞出現次數

 

 

 然后輸入

sc.textFile("in").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).foreach(println)

 

 

 

 

 

 

 統計完成

然后退出spark-shell再運行下spark提供的案例

./bin/spark-submit  \
--class org.apache.spark.examples.SparkPi \
--executor-memory 1G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.11-2.4.5.jar \
100

這是計算圓周率

 

 

 表示案例運行成功

上面是spark單獨使用,但是spark要和hadoop一起使用,所以要把spark運行到yarn上

1.首先spark將應用提交各hadoop 的Resource Manager(資源管理器)

2.然后Resource Manager 創建ApplicationMastor(應用管理器) 

3.Application Mastor向Resource Manager申請資源

4.Resource Manager 返會Data Manger列表(這個列表不包含包括Application Mastor 的Data Manager)

5.Application Mastor 選取Data Manager 創建Container(容器)

6.Container創建完成后反向注冊到Application Mastor

7.Application Mastor 分解任務並且進行調度

 

先啟動hadoop

1.修改hadoop的配置文件  /opt/module/hadoop/etc/hadoop/mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

啟動hadoop  然后運行 bin/spark-shell --master yarn-client

還是報錯

 

 

 出現上圖修改 vim /opt/module/hadoop/etc/hadoop/yarn-site.xml 

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
                <name>yarn.nodemanager.pmem-check-enabled</name>
                <value>false</value>
    </property>
    <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</value>
    </property>

</configuration>

啟動hadoop

 

然后運行 bin/spark-shell --master yarn-client

出現Exception in thread "main" org.apache.spark.SparkException: When running with master 'yarn-client' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.

 

 

這是由於我們沒有在spark中配置hadoop的地址

 進入conf配置目錄

 

 

復制一個spark-env.sh.template 命名為spark-env.sh

cp  spark-env.sh.template spark-env.sh

 

然后 vi spark-env.sh

在最后一行添加hadoop的目錄

YARN_CONF_DIR=/opt/module/hadoop

 

啟動成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM