Spark安装步骤及配置Spark HA和Job History Server
spark安装步骤:
- 1、官网下载spark,根据自己所需的版本,进行下载下来。
- 2、上传到Linux,相关目录下
- 3、解压:tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /home/bigdata/Hadoop
- 4、进入:cd /home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/conf
- 4.1、将slaves.template复制为slaves
- 4.2、将spark-env.sh.template复制为spark-env.sh
- 5、修改配置文件:
- 5.1、修改slaves,你有几台机器就添加几台
- 5.2、修改spark-env.sh文件
- SPARK_MASTER_HOST=填写主节点,根据自己的设置进行添加
- SPARK_MASTER_PORT=7077(设置服务端口)
- 6、分发到各个集群
scp -r ./spark-2.1.1/ hadoop01:/opt/module/
scp -r ./spark-2.1.1/ hadoop02:/opt/module/
scp -r ./spark-2.1.1/ hadoop03:/opt/module/
- 7、进入spark-2.1.1目录,启动:sbin/start-all.sh
- 8、查看是否启动成功呢,web端访问:master:8080
- 9、bin/spark-shell可以进入看看了,写点scala了
- 10、注意:如果遇到 “JAVA_HOME not set” 异常,可以在sbin目录下的spark-config.sh 文件中加入如下配置:export JAVA_HOME=XXXX
配置Job History Server【Standalone】
- 1、进入spark目录:cd /home/bigdata/hadoop/spark-2.1.1/conf
- 2、将spark-default.conf.template复制为:spark-default.conf
- 3、修改spark-default.conf文件,开启Log:
- spark.eventLog.enabled true 开启日志
- spark.eventLog.dir hdfs://s202:9000/directory 日志存在哪里【目录需要有】
- 4、注意:HDFS上的目录需要提前存在,修改spark-env.sh文件,添加如下配置:
- 5、修改spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000
-Dspark.history.retainedApplications=3
-Dspark.history.fs.logDirectory=hdfs://master01:9000/directory"
参数说明:
spark.history.ui.port=4000 调整WEBUI访问的端口号为4000
spark.history.fs.logDirectory=hdfs://master01:9000/directory 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息
spark.history.retainedApplications=3 指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这是内存中的应用数,而不是页面上显示应用数。
- 6、将配置好的Spark文件拷贝到其他节点上:
scp spark-env.sh hadoop01:/opt/module/spark-2.1.1/conf/
scp spark-env.sh hadoop02:/opt/module/spark-2.1.1/conf/
scp spark-env.sh hadoop03:/opt/module/spark-2.1.1/conf/
- 7、启动:/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/sbin/start-all.sh
注意:启动后执行:【别忘了启动HDFS】
- 8、/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/sbin/start-history-server.sh
- 9、如果遇到Hadoop HDFS的写入权限问题:
解决方案:在hdfs-site.xml中添加如下配置,关闭权限验证
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
- 10、启动/关闭spark:sbin/start-all.sh sbin/stop-all.sh
- 11、手动启动:sbin/start-history-server.sh 这时呢你可以在8080端口访问还可以在4000端口访问
配置Spark HA【Standalone】
- 1、Spark集群规划:master01,master02是Master;slave01,slave02,slave03是Worker
- 2、安装配置Zookeeper集群,并启动Zookeeper集群,停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hadoop01:2181,hadoop02:2181,hadoop03:2181(注意zookeeper写自己的)
-Dspark.deploy.zookeeper.dir=/spark"
- 3、分发到每个集群
scp spark-env.sh hadoop01:/opt/module/spark-2.1.1/conf/
scp spark-env.sh hadoop02:/opt/module/spark-2.1.1/conf/
scp spark-env.sh hadoop03:/opt/module/spark-2.1.1/conf/
- 4、启动zookeeper:bin/zkServer.sh start
- 5,查看zookeeper是否都启动:bin/zkServer.sh status
- 6、启动spark:sbin/start-all.sh
- 7、手动在另一台启动spark:sbin/start-master.sh