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
啟動成功

