spark環境搭建(widows+linux)


一、在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

 


免責聲明!

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



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