1. 程式人生 > >高可用spark叢集搭建

高可用spark叢集搭建

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