高可用spark叢集搭建
阿新 • • 發佈:2018-12-25
spark有多種模式:主要有以下幾種
Standalone Deploy Mode: simplest way to deploy Spark on a private cluster
Apache Mesos
Hadoop YARN
Kubernetes
下面介紹在高可用(HA)叢集上搭建standalone的spark叢集
搭建前提你已經有了一個高可用的HA叢集,如果沒有可以參考高可用叢集搭建
第一步:下載對應版本的spark,下載地址這裡
第二步:解壓到相應的目錄檔案
第三步:修改配置檔案,有且僅有三個
(1)spark-env.sh.template
將檔案重新命名cp spark-env.sh.template spark-env.sh
#java路徑,必須配置 export JAVA_HOME=/usr/local/jdk1.8.0_73 #主節點埠號,預設7077 export SPARK_MASTER_PORT=7077 #執行程式的核心數量(預設值:1) export SPARK_EXECUTOR_CORES = 1 #每個執行程式的記憶體(例如1000M,2G)(預設值:1G) export SPARK_EXECUTOR_MEMORY = 1000m #驅動程式記憶體(例如1000M,2G)(預設值:1G) export SPARK_DRIVER_MEMORY = 1000m #配置zookeeper,必須配置,不能換行 export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop02:2181,hadoop0 3:2181,hadoop04:2181 -Dspark.deploy.zookeeper.dir=/spark2.3" #將Spark指向Hadoop配置檔案,必須配置,方便spark載入高可用配置 export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
(2)spark-defaults.conf.template
將檔案重新命名cp spark-defaults.conf.template spark-defaults.conf
#指定spark的主節點,可以指定多個,用","分割,作為standby,可以進行切換
spark.master spark://hadoop03:7077,hadoop02:7077
如果不指定,預設為本地模式(local)
!!!!將其註釋後,可以在命令列手動指定master節點,
(3)slaves.template
重新命名檔案cp slaves.template slaves
輸入worker的節點主機對映名稱
hadoop02
hadoop03
hadoop04
hadoop05
第四步:分發測試,如果想方便使用可以配置環境變數
啟動測試:
首先啟動zookeeper
然後啟動hdfs
最後啟動spark叢集,在sbin目錄下使用./start-all.sh命令,備用節點需要手動啟動,命令為start-master.sh
至此高可用叢集搭建完畢。
通過測試,主備節點可以順利切換,任務執行時,主節點掛掉,任務任然可以繼續執行
yarn叢集搭建,在配置檔案中將下面去掉註釋即可
export YARN_CONF_DIR=/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
修改yarn-site.xml的配置檔案,新增
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>Whether virtual memory limits will be enforced for containers</description>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
使用命令:spark-shell --master yarn --deploy-mode client
啟動即可
完整搭建連線:
http://www.cnblogs.com/qingyunzong/p/8888080.html