溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Standalone模式如何在spark中進行配置

發(fā)布時間:2020-12-08 17:00:54 來源:億速云 閱讀:204 作者:Leah 欄目:編程語言

這篇文章給大家介紹Standalone模式如何在spark中進行配置,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

spark運行模式

Spark 有很多種模式,最簡單就是單機本地模式,還有單機偽分布式模式,復雜的則運行在集群中,目前能很好的運行在 Yarn和 Mesos 中,當然 Spark 還有自帶的 Standalone 模式,對于大多數情況 Standalone 模式就足夠了,如果企業(yè)已經有 Yarn 或者 Mesos 環(huán)境,也是很方便部署的。

1.local(本地模式):常用于本地開發(fā)測試,本地還分為local單線程和local-cluster多線程;

2.standalone(集群模式):典型的Mater/slave模式,不過也能看出Master是有單點故障的;Spark支持ZooKeeper來實現 HA

3.on yarn(集群模式): 運行在 yarn 資源管理器框架之上,由 yarn 負責資源管理,Spark 負責任務調度和計算

4.on mesos(集群模式): 運行在 mesos 資源管理器框架之上,由 mesos 負責資源管理,Spark 負責任務調度和計算

5.on cloud(集群模式):比如 AWS 的 EC2,使用這個模式能很方便的訪問 Amazon的 S3;Spark 支持多種分布式存儲系統:HDFS 和 S3

Spark Standalone集群部署

準備工作

1.這里我下載的是Spark的編譯版本,否則需要事先自行編譯

2.Spark需要Hadoop的HDFS作為持久化層,所以在安裝Spark之前需要安裝Hadoop,這里Hadoop的安裝就不介紹了,給出一個教程hadoop 單機安裝配置教程

3.實現創(chuàng)建hadoop用戶,Hadoop、Spark等程序都在該用戶下進行安裝

4.ssh無密碼登錄,Spark集群中各節(jié)點的通信需要通過ssh協議進行,這需要事先進行配置。通過在hadoop用戶的.ssh目錄下將其他用戶的id_rsa.pub公鑰文件內容拷貝的本機的authorized_keys文件中,即可事先無登錄通信的功能

5.Java環(huán)境的安裝,同時將JAVA_HOME、CLASSPATH等環(huán)境變量放到主目錄的.bashrc,執(zhí)行source .bashrc使之生效

部署配置

這里配置工作需要以下幾個步驟:

1.解壓Spark二進制壓縮包
2.配置conf/spark-env.sh文件
3.配置conf/slave文件

下面具體說明一下:

配置Spark的運行環(huán)境,將spark-env.sh.template模板文件復制成spark-env.sh,然后填寫相應需要的配置內容:

export SPARK_MASTER_IP=hadoop1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g

其他選項內容請參照下面的選項說明:

# Options for the daemons used in the standalone deploy mode:
# - SPARK_MASTER_IP, to bind the master to a different IP address or hostname
# - SPARK_MASTER_PORT / SPARK_MASTER_WEBUI_PORT, to use non-default ports for the master
# - SPARK_MASTER_OPTS, to set config properties only for the master (e.g. "-Dx=y")
# - SPARK_WORKER_CORES, to set the number of cores to use on this machine
# - SPARK_WORKER_MEMORY, to set how much total memory workers have to give executors (e.g. 1000m, 2g)
# - SPARK_WORKER_PORT / SPARK_WORKER_WEBUI_PORT, to use non-default ports for the worker
# - SPARK_WORKER_INSTANCES, to set the number of worker processes per node
# - SPARK_WORKER_DIR, to set the working directory of worker processes
# - SPARK_WORKER_OPTS, to set config properties only for the worker (e.g. "-Dx=y")
# - SPARK_HISTORY_OPTS, to set config properties only for the history server (e.g. "-Dx=y")

conf/slave文件用戶分布式節(jié)點的配置,這里只需要在slave文件中寫入該節(jié)點的主機名即可

將以上內容都配置好了,將這個spark目錄拷貝到各個節(jié)點scp -r spark hadoop@hadoop2:~

接下來就可以啟動集群了,在Spark目錄中執(zhí)行sbin/start-all.sh,然后可以通過netstat -nat命令查看端口7077的進程,還可以通過瀏覽器訪問hadoop1:8080了解集群的概況

Spark Client部署

Spark Client的作用是,事先搭建起Spark集群,然后再物理機上部署客戶端,然后通過該客戶端提交任務給Spark集群。
由于上面介紹了Standalone分布式集群是如何搭建的,這里只需將集群上的spark文件夾拷貝過來。

最簡單的Spark客戶端訪問集群的方式就是通過Spark shell的方式:bin/spark-shell --master spark://hadoop1:7077這樣就可以訪問集群了。

這樣在瀏覽器的Spark集群界面上就可以看到Running Applications一欄中有Spark shell的應用在執(zhí)行。

Spark Standalone偽分布式部署

偽分布式是在一臺機器上進行部署來模擬分布式的集群,這里部署的過程和Standalone集群的部署是類似的,事前的工作都是一樣的,這里只是在配置文件中做相應的修改就可以了。

這里還是配置這兩個文件:

配置conf/spark-env.sh文件
配置conf/slave文件

修改spark-env.sh文件,修改master的ip,這里主機名和用戶ip分別在/etc/hostname和/etc/hosts文件中進行配置

export SPARK_MASTER_IP=jason
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g

slave文件中,填寫自己的主機名,比如我的主機名jason

關于Standalone模式如何在spark中進行配置就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI