spark幾種部署模式捎谨,每種模式特點及搭建

Spark分布式集群搭建的步驟

  • 1)準備linux環(huán)境,設置集群搭建賬號和用戶組畏邢,設置ssh检吆,關閉防火墻,關閉seLinux蹭沛,配置host,hostname
  • 2)配置jdk到環(huán)境變量
  • 3)搭建hadoop集群咆贬,如果要做master帚呼,需要搭建zookeeper集、修改hdfs-site.xml,hadoop_env.sh,yarn-site.xml,slaves等配置文件
  • 4)啟動hadoop集群眷蜈,啟動前要格式化namenode
  • 5)配置spark集群沈自,修改spark-env.xml,slaves等配置文件枯途,拷貝hadoop相關配置到spark conf目錄下
  • 6)啟動spark集群柔袁。

spark的有幾種部署模式,每種模式特點

  • local(本地模式):常用于本地開發(fā)測試捶索,本地還分為local單線程和local-cluster多線程;
  • standalone(集群模式):典型的Mater/slave模式,不過也能看出Master是有單點故障的辅甥;Spark支持ZooKeeper來實現(xiàn) HA
  • on yarn(集群模式): 運行在 yarn 資源管理器框架之上,由 yarn 負責資源管理要销,Spark 負責任務調度和計算
  • on mesos(集群模式): 運行在 mesos 資源管理器框架之上夏块,由 mesos 負責資源管理,Spark 負責任務調度和計算
  • on cloud(集群模式):比如 AWS 的 EC2脐供,使用這個模式能很方便的訪問 Amazon的 S3;Spark 支持多種分布式存儲系統(tǒng):HDFS 和 S3

下面對集中部署模式進行詳細介紹

1政己、本地模式

該模式運行任務不會提交在集群中,只在本節(jié)點執(zhí)行歇由,有兩種情況

本地模式: 測試或實驗性質的本地運行模式 (單機)

運行該模式非常簡單,只需要把Spark的安裝包解壓后糊昙,改一些常用的配置即可使用赦肃,而不用啟動Spark的Master、Worker守護進程( 只有集群的Standalone方式時,才需要這兩個角色)厅各,也不用啟動Hadoop的各服務(除非你要用到HDFS)预柒。

Spark不一定非要跑在hadoop集群,可以在本地宜鸯,起多個線程的方式來指定。將Spark應用以多線程的方式直接運行在本地鸿市,一般都是為了方便調試,本地單機模式分三類:

  • local:只啟動一個executor
  • local[k]:啟動k個executor
  • local[*]:啟動跟cpu數(shù)目相同的 executor

搭建步驟:

  • 安裝java
$ sudo apt-get install openjdk-8-jre

(中間有報錯:raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u'Unable to locate hive jars to connect to metastore. Please set spark.sql.hive.metastore.jars.'陌凳,網(wǎng)上提示查看jdk版本内舟,發(fā)現(xiàn)ubuntu 18.04默認是openjdk-11-jdk包(java -version提示10.0.1)。重新安裝openjdk-8-jdk版本不報錯)

  • 配置jdk到環(huán)境變量
    (可以用命令:sudo update-alternatives --config java來查看你的Java版本有哪些充岛,需要將哪個添加到環(huán)境變量中)
$ sudo vim /etc/profile
  • 添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  • 安裝Scala
  • 安裝spark-2.3.1-bin-hadoop2.7(沒有Hadoop的環(huán)境下)
$ sudo wget -c [http://mirror.bit.edu.cn/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz](http://mirror.bit.edu.cn/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz)
$ sudo tar zxf spark-2.3.1-bin-hadoop2.7.tgz -C /usr/lib/spark
$ cd /usr/lib/spark
$ sudo ln -s spark-2.3.1-bin-hadoop2.7 spark
$ sudo vim ~/.bashrc
  • 添加
    export SPARK_HOME=/usr/lib/spark/spark
    export PATH=PATH:SPARK_HOME/bin
    export PYTHONPATH=/home/rss/anaconda2/bin
    (這里我修改了python的環(huán)境變量耕蝉,使用自己的python
    sudo ln -s /home/rss/anaconda2/bin/python /usr/bin/python
    PATH=/usr/bin:$PATH)
  • 安裝成功

運行:
使用spark-shell赔硫、spark-submit、pyspark
例如使用spark-shell:

local:單機爪膊、單核運行

image.png

image.png

local[k]:啟動k個executor

image.png

image.png

local[]:啟動跟cpu數(shù)目相同的 executor*

image.png

image.png

上述情況中,local[N]與local[*]相當于用單機的多個線程來模擬spark分布式計算耘成,通常用來檢驗開發(fā)出來的程序邏輯上有沒有問題。

其中N代表可以使用N個線程撒会,每個線程擁有一個core师妙。

這些任務的線程,共享在一個進程中怔檩,可以開到蓄诽,在程序的執(zhí)行過程中只會產生一個進程,這個進程攬下了所有的任務仑氛,既是客戶提交任務的client進程闸英,又是spark的driver程序膊爪,還是spark執(zhí)行task的executor

本地模式: 測試或實驗性質的本地偽集群運行模式(單機本地模擬集群)

這種運行模式米酬,和Local[N]很像,不同的是赃额,它會在單機啟動多個進程來模擬集群下的分布式場景,而不像Local[N]這種多個線程只能在一個進程下委屈求全的共享資源芍锦。通常也是用來驗證開發(fā)出來的應用程序邏輯上有沒有問題飞盆,或者想使用Spark的計算框架而沒有太多資源。

用法:提交應用程序時使用local-cluster[x,y,z]參數(shù):x代表要生成的executor數(shù)吓歇,y和z分別代表每個executor所擁有的core和memory數(shù)城看。

$ spark-submit --master local-cluster[2,3,1024]  ss.py

上面這條命令代表會使用2個executor進程,每個進程分配3個core和1G的內存测柠,來運行應用程序≮酥鳎可以看到软吐,在程序執(zhí)行過程中,會生成如下幾個進程:

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肠仪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌意述,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拌屏,死亡現(xiàn)場離奇詭異术荤,居然都是意外死亡,警方通過查閱死者的電腦和手機端圈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門子库,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宴倍,你說我怎么就攤上這事仓技。” “怎么了恭理?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵郭变,是天一觀的道長。 經常有香客問我诉濒,道長未荒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任寨腔,我火速辦了婚禮率寡,結果婚禮上,老公的妹妹穿的比我還像新娘冶共。我一直安慰自己每界,他們只是感情好家卖,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布上荡。 她就那樣靜靜地躺著,像睡著了一般榛臼。 火紅的嫁衣襯著肌膚如雪沛善。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天帅涂,我揣著相機與錄音尤蛮,去河邊找鬼。 笑死产捞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的焊唬。 我是一名探鬼主播看靠,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鸥滨!你這毒婦竟也來了谤祖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤空幻,失蹤者是張志新(化名)和其女友劉穎容客,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缩挑,經...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡供置,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了紧阔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片续担。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡物遇,死狀恐怖,靈堂內的尸體忽然破棺而出询兴,到底是詐尸還是另有隱情,我是刑警寧澤诗舰,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布眶根,位于F島的核電站,受9級特大地震影響汛闸,放射性物質發(fā)生泄漏诸老。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一蹄衷、第九天 我趴在偏房一處隱蔽的房頂上張望厘肮。 院中可真熱鬧愧口,春花似錦类茂、人聲如沸托嚣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冲秽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間排霉,已是汗流浹背刨仑。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辙诞,地道東北人轻抱。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像较店,于是被迫代替她去往敵國和親容燕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內容

  • 1.1官卡、 分配更多資源 1.1.1醋虏、分配哪些資源? Executor的數(shù)量 每個Executor所能分配的CPU數(shù)...
    miss幸運閱讀 3,181評論 3 15
  • 1毛秘、 性能調優(yōu) 1.1、 分配更多資源 1.1.1叫挟、分配哪些資源? Executor的數(shù)量 每個Executor所...
    Frank_8942閱讀 4,542評論 2 36
  • Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設計的快速通用的計算引擎旬薯。Spark是UC Berkeley AM...
    大佛愛讀書閱讀 2,828評論 0 20
  • Apache Spark是一個圍繞速度、易用性和復雜分析構建的大數(shù)據(jù)處理框架硕舆,最初在2009年由加州大學伯克利分校...
    達微閱讀 601評論 0 0
  • spark-submit的時候如何引入外部jar包 在通過spark-submit提交任務時抚官,可以通過添加配置參數(shù)...
    博弈史密斯閱讀 2,741評論 1 14