1. 程式人生 > >配置Spark standalone叢集啟動

配置Spark standalone叢集啟動

前言

想在本地提交spark程式,在網上找了一些文章。在本地提交的前提就是,spark以叢集的方式啟動。於是想以簡單的standalone方式啟動,但在啟動的時候遇到了一些問題,下面把過程和問題總結一下。

正文

前提:

  • 已經下載到spark到機器上(master和slave),並且已經配置好了SPARK_HOME(使用版本:spark-2.1.0-bin-hadoop2.7.tgz)
  • 已經安裝了java(使用版本:1.8.0_111)

啟動方式1(不用做修改)

1,在Master機器上,執行$SPARK_HOME/sbin/start-master.sh,啟動master。啟動完後,就可以通過

http://master-ip:8080網址來檢視叢集執行的執行狀態。(這時候網址上面的“Workers”表裡,還沒有任何資訊)


2,在Slave機器上啟動Worker程序,連線到Master上。有兩個方法,這兩個方法都可以完成這個工作:

  • 執行$SPARK_HOME/bin/spark-class org.apache.spark.deploy.worker.Worker spark://master-ip:7077
  • 執行$SPARK_HOME/sbin/start-slave.sh spark://master-ip:7077

啟動完後,刷上面的web頁面,就可以在“Workers”裡看到新啟動的Worker。


3,進行測試。以叢集的方式啟動spark-shell:$SPARK_HOME/bin/spark-shell --master spark://master-ip:7077
--master spark://master-ip:7077中,

  • master是指定Shell連線到叢集
  • spark://master-ip:7077是叢集服務的地址,這個地址在http://master-ip:8080頁面的最上面就可以看到)

當連線成功後,就可以在上面的web頁面中看到在“Running Applications”裡有類似下面的內容:

Application ID:app-20170312004859-0000 Name:Spark shell


還有一種測試方法,就是使用JPS命令,檢視Master上的master程序是否啟動,Slave上的worker程序是否已經啟動。

啟動方式2(需要修改)

1,把$SPARK_HOME/conf/spark-env.sh.template檔案,拷貝一份命名為:spark-env.sh。然後編輯spark-env.sh檔案,追加JAVA_HOME的設定,例如:

export JAVA_HOME=/usr/local/java/current
export PATH=$PATH:$JAVA_HOME/bin

如果不進行這步的設定,在使用spark-all.sh進行啟動master和slave的話,啟動到slave時,就會出現JAVA_HOME is not set的錯誤提示。


2,把Master下的$SPARK_HOME/conf/slaves.template檔案,拷貝一份命名為:slave。然後編輯slave檔案,追加slave的機器,例如:

localhost
hadoop-slave-1

localhost是原來檔案自帶的。如果有localhost,master機器上也會啟動一個worker)


3,使用scp -R spakr_dir [email protected]:~命令,把配置好的spark拷貝到slave機器上,替換掉原來的spark目錄。


4,在Master機器上,使用$SPARK_HOME/sbin/start-all.sh進行啟動master和slave。


5,進行測試。測試方法和上面一樣。

遇到的問題

在配置過程中,啟動spark-shell進行測試時,發生了下面的錯誤:

ERROR cluster.SparkDeploySchedulerBackend: Application has been killed. Reason: Master removed our application: FAILED

問題原因:

spark目錄下的work目錄的所屬使用者和使用者組都是root,不是我建立的hadoop使用者。

如何查詢問題:
  在網上找了找,有的說是因為/etc/hosts設定的問題,有的說是因為防火牆沒有關的問題(可以參考叢集外的client節點執行Spark shell,10多秒之後自動斷開),試了試,不好用,看來不是這個問題。
  後來測試發現,只啟動master,不啟動slave的話,可以正常啟動。後來使用第一種方法進行啟動後,再進行測試的話,slave的錯誤資訊被列印到螢幕上,這才知道了是slave出了問題。而看到錯誤資訊後,也就知道了是work目錄無法建立檔案,然後就找到了問題的所在。
(slave機器的log位置:/usr/local/spark/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-hadoop-slave-1.out)

其它

有的教程上說要對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


參考:

相關推薦

配置Spark standalone叢集啟動

前言 想在本地提交spark程式,在網上找了一些文章。在本地提交的前提就是,spark以叢集的方式啟動。於是想以簡單的standalone方式啟動,但在啟動的時候遇到了一些問題,下面把過程和問題總結一下。 正文 前提: 已經下載到s

Spark-Standalone叢集及搭建

目錄 Spark叢集 1.Spark叢集 2.Spark HA叢集 3.客戶端 Spark叢集 1.Spark叢集 1.叢集規劃 Master Wo

使用spark-submit提交jar包到spark standalone叢集(續)

繼續上篇文章利用Intellij Idea在windows搭建spark 開發環境(含打jar包過程)(一) 以及Sparksql處理json日誌[要求sparksql統計json日誌條數存入mysql資料庫]                          本章將把打好

大資料:Spark Standalone 叢集排程(二)如何建立、分配Executors的資源

Standalone 的整體架構 在Spark叢集中的3個角色Client, Master, Worker, 下面的圖是Client Submit 一個任務的流程圖: 完整的流程:Driver 提交任務給Master, 由Master節點根據任務的引數對進行Worker

windows系統作為driver遠端提交任務給spark standalone叢集demo

其實這個是上篇文章的升級版。先上demo程式碼吧,其中要改的地方還挺多的,此外,如果不將模型持久化的話,煩請自行修改相關程式碼(demo比較簡單,我就不闡釋他是幹什麼的了):from pyspark.ml.feature import Word2Vec from pyspar

Spark 叢集配置standalone

此為純乾貨 喊話橙子精:我放棄那篇論文總結了。。。寒假前在離開實驗室的那天系統抽風了,來學校這兩天基本花在重新裝系統配環境上了 鋪墊一下 在Spark中除了在單機上執行的local模式以外,共有三種分散式部署方法: local 執行在單機上,一

Spark Standalone Mode安裝配置

一、Spark下載安裝 官網地址:http://spark.apache.org/downloads.html [email protected]:/usr/local# tar -zxvf spark-1.6.0-bin-hadoop2.6.tgz [email 

spark叢集啟動流程

今天來說一下spark叢集的啟動流程: 1.通過呼叫start-all.sh來啟動Master和Worker,首先啟動的是Mastor 2.Master服務啟動後,在PreStart方法中會啟動一個定時器定時檢查超時的Worker 3.執行receive方法,不斷地接受其他Act

Spark叢集啟動流程-Worker啟動-原始碼分析

Spark叢集啟動流程-Worker啟動-原始碼分析 上篇文章介紹了Master啟動(Master啟動點選:https://blog.csdn.net/weixin_43637653/article/details/84073849 ),接下來,我們在原始碼裡繼續分析Worker的啟動

Spark叢集啟動流程-Master啟動-原始碼分析

Spark叢集啟動流程-Master啟動-原始碼分析 總結: 1.初始化一些用於啟動Master的引數 2.建立ActorSystem物件,並啟動Actor 3.呼叫工具類AkkaUtils工具類來建立actorSystem(用來建立Actor的物件) 4.建立屬於Master的ac

第二天 -- Spark叢集啟動流程 -- 任務提交流程 -- RDD依賴關係 -- RDD快取 -- 兩個案例

第二天 – Spark叢集啟動流程 – 任務提交流程 – RDD依賴關係 – RDD快取 – 兩個案例 文章目錄 第二天 -- Spark叢集啟動流程 -- 任務提交流程 -- RDD依賴關係 -- RDD快取 -- 兩個案例 一、Spa

spark叢集啟動後,子機器上有worker程序,但在master機器上開啟webui,worker卻只有master是為什麼?

個人在學習時,電腦突然更新了,導致虛擬機器關閉,偽叢集掛起。重新開啟時,發現spark叢集啟動後,worker程序啟動,但並沒有在master上註冊。百度了下,發現防火牆打開了。。。 關閉防火牆後master和worker之間能正常通訊了。 $ service ipt

hbase叢集啟動配置檔案修改

1.修改hbase-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_55 告訴hbase使用外部的zk export HBASE_MANAGES_ZK=false 2.修改hbase-site.xml hbase.ro

CentOS7 配置redis3.0叢集開機啟動

 1. Redis Cluster的架構圖。 1.1redis-cluster架構圖 架構細節 (1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位制協議優化傳輸速度和頻寬. (2)節點的fail是通過叢集中超過半數的節點檢測失

3臺機器配置spark-2.1.0叢集

一. 環境介紹 三臺主機,主機名和ip分別為: ubuntu1  10.3.19.171 ubuntu2  10.3.19.172 ubuntu3  10.3.19.173 三臺主機的登入使用者名稱是bigdata,home目錄是/home/bigdata 現在三臺主機上部

Spark自帶的叢集模式(Standalone),Spark/Spark-ha叢集搭建

#1、Spark自帶的叢集模式 對於Spark自帶的叢集模式,Spark要先啟動一個老大(Master),然後老大Master和各個小弟(Worker)進行通訊,其中真正幹活的是Worker下的Executor。關於提交任務的,需要有一個客戶端,這個客戶端叫做D

11g RAC叢集啟動關閉、各種資源檢查、配置資訊檢視彙總。

簡要: 一:叢集的啟動與關閉 1. rac叢集的手動啟動 [[email protected] bin]# ./crsctl start cluster -all 2. 檢視rac叢集的狀態 [[email protected] bin]# ./cr

Spark 2.4 之 standalone 叢集搭建

本文參考官方文件: http://spark.apache.org/docs/latest/spark-standalone.html 1.預先搭建3臺hadoop 的叢集 SERVER INFO version

Linux中安裝配置spark叢集

一. Spark簡介   Spark是一個通用的平行計算框架,由UCBerkeley的AMP實驗室開發。Spark基於map reduce 演算法模式實現的分散式計算,擁有Hadoop MapReduce所具有的優點;但不同於Hadoop MapReduce的是Job中間輸出和結果可以儲存在記憶體中,從而不

Spark叢集啟動python shell錯誤: Could not resolve hostname localhost: Temporary failure

Hadoop叢集部署參考:點選檢視 Spark叢集部署參考:點選檢視 最近在自己搭建的平臺上測試spark-python指令碼,發現一個錯誤如下: <span style="font-size:14px;">[[email protected] spa