一、在idea中調試spark程序-配置windows上的 spark local模式
spark程序大致有如下運行模式:
standalone模式:spark自帶的模式
spark on yarn:利用hadoop yarn來做集群的資源管理
local模式:主要在測試的時候使用,
這三個模式先大致了解,目前我用到的就是local和yarn。其中,我們寫spark程序,一般在idea上寫,若每次都要將程序打包,再上傳到集群,再運行,將嚴重影響我們效率,所以在調試代碼的時候,一般用local模式,在windows的idea上直接操作。
環境配置步驟如下:只做簡要說明,各個步驟的具體安裝可自行百度
1、jdk安裝,基礎環境
2、hadoop安裝,spark要用到hadoop的windows的本地hdfs庫,若不安裝報如下錯誤:
Failed to locate the winutils binary in the hadoop binary path
hadoop具體安裝步驟:(1)先拷貝hadoop的tar.gz安裝包,也就是安裝到linux上的那個安裝包,解壓即可.
(2)去github下載https://github.com/srccodes/hadoop-common-2.2.0-bin,這個里面就是winutils,編譯包
(3)將common包解壓,將bin下的所有文件拷貝到hadoop安裝目錄下的bin里,重復的文件覆蓋。
(4)配置HADOOP_HOME和CLASSPATH,其中classpath指定winutils的具體位置。
3、idea安裝scala插件
二、spark集群搭建linux
前置准備需要配置/etc/hosts,即使啟動了worker,worker也找不到master進行心跳報活,worker列表中也找不到該worker
配置worker到master的免密登陸
一、前提安裝好了hadoop、jdk
yarn 的resourcemanager是通過slaves文件,找到nodemanager所在的節點進行啟動,因此通過./sbin/start-yarn.sh 必須要配置slaves文件,否則就要單獨啟動。
yarn 的nodemanager是通過yarn-site.xml里的resourcemanager來找到其所在的節點,並主動報活的,因此yarn集群中的所有yarn-site.xml文件都要一樣,使用scp拷貝即可。
yarn 集群的資源的配置也是寫在yarn-site.xml里面的。
二、安裝scala
scala正常不需要安裝,因為spark安裝目錄中已經有了scala的jar包,為了日后使用的方便,還是進行安裝吧。
(1)scala去官網下載,版本要參照spark官網,依據spark版本下載對應的版本。
(2)解壓文件
(3)然后在/etc/profile里配置scala的環境變量:
export SCALA_HOME=/data/wanglei/soft/scala-2.11.8 export PATH=$SCALA_HOME/bin:$PATH
修改保存后執行:source /etc/profile
(4)保存退出,source一下配置文件讓其立刻生效。然后再運行scala:
[root@datanodetest02 soft]# scala Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51). Type in expressions for evaluation. Or try :help. scala>
說明安裝成功了,對集群的所有機器執行這個命令,驗證其是否安裝成功。
三、安裝spark,修改配置文件,這里主要是配置了standalone模式
spark中重要的就是spark-env文件,里面可以配置spark集群的相關設置信息,java-home,和master所在的IP和端口信息。當我們配置了master高可用的時候,master信息不是一個了,就要將其注釋掉,同時要保證所有節點的這個文件一模一樣,不然會啟動不起來集群。導致報錯。
spark高可用引入的配置信息:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=Master:2181,Worker1:2181,Worker2:2181 -Dspark.deploy.zookeeper.dir=/spark"
(1)解壓完之后,要先配置環境變量,在/etc/profile 中,要配置bin和sbin,因為spark相應的命令在其中。不然會報錯:spark-shell命令不存在。

(2)spark安裝步驟參照博客:主要就是修改幾個配置文件,修改完成后,直接發送整個spark安裝包到
https://blog.csdn.net/bitcarmanlee/article/details/51967323
spark中配置文件各個參數的作用
https://blog.csdn.net/kwu_ganymede/article/details/50930633
三、單spark集群搭建linux
進入到Spark安裝目錄
cd /usr/local/spark-2.1.0-bin-hadoop2.6
進入conf目錄並重命名並修改spark-env.sh.template文件
cd conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
在該配置文件中添加如下配置
export JAVA_HOME=/usr/java/jdk1.8.0_111
#export SPARK_MASTER_IP=node1.edu360.cn
#export SPARK_MASTER_PORT=7077
保存退出
重命名並修改slaves.template文件
mv slaves.template slaves
vi slaves
在該文件中添加子節點所在的位置(Worker節點)
node2.edu360.cn
node3.edu360.cn
node4.edu360.cn
保存退出
將配置好的Spark拷貝到其他節點上
scp -r spark-2.1.0-bin-hadoop2.6/ node2.edu360.cn:/usr/local/
scp -r spark-2.1.0-bin-hadoop2.6/ node3.edu360.cn:/usr/local/
scp -r spark-2.1.0-bin-hadoop2.6/ node4.edu360.cn:/usr/local/
Spark集群配置完畢,目前是1個Master,3個Work,在node1.edu360.cn上啟動Spark集群
/usr/local/spark-2.1.0-bin-hadoop2.6/sbin/start-all.sh
啟動后執行jps命令,主節點上有Master進程,其他子節點上有Work進行,登錄Spark管理界面查看集群狀態(主節點):http://node1.edu360.cn:8080/
到此為止,Spark集群安裝完畢,但是有一個很大的問題,那就是Master節點存在單點故障,要解決此問題,就要借助zookeeper,並且啟動至少兩個Master節點來實現高可靠,配置方式比較簡單:
Spark集群規划:node1,node2是Master;node3,node4,node5是Worker
安裝配置zk集群,並啟動zk集群
停止spark所有服務,修改配置文件spark-env.sh,在該配置文件中刪掉SPARK_MASTER_IP並添加如下配置
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"
1.在node1節點上修改slaves配置文件內容指定worker節點
2.在node1上執行sbin/start-all.sh腳本,然后在node2上執行sbin/start-master.sh啟動第二個Master
