一、spark的安装
Spark安装包下载地址:http://spark.apache.org/downloads.html
1.安装jdk,并配置jdk环境变量
2.解压缩
tar -xf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
3.修改文件夹
mv spark-2.1.1-bin-hadoop2.7/ spark-2.1.1
二、配置Spark【Standalone】
1.进入spark-2.1.1/conf目录下
- 将slaves.template复制为slaves
- 将spark-env.sh.template复制为spark-env.sh
- 修改slave文件,将work的hostname输入:
hadoop202
hadoop203
- 修改spark-env.sh文件,添加如下配置:
SPARK_MASTER_HOST=hadoop201
SPARK_MASTER_PORT=7077
2.进入sbin目录,修改spark-config.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
3.同步所有集群的其他节点配置
xsync.sh /opt/module/spark-2.1.1/conf/
xsync.sh /opt/module/spark-2.1.1/sbin/spark-config.sh
三、操作spark
1.启动和停止spark
sbin/start-all.sh
停止spark
sbin/stop-all.sh
2.访问spark集群
- 命令行操作
bin/spark-shell --master spark://hadoop201:7077
# 或者
/opt/module/spark-2.1.1/bin/spark-shell \
--master spark://hadoop201:7077 \
--executor-memory 2g \
--total-executor-cores 2
- 页面访问:http://hadoop201:8080/
- 提交jar包应用
bin/spark-submit
例如:
# 利用蒙特卡罗算法求PI
/opt/module/spark-2.1.1/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop201:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/opt/module/spark-2.1.1/examples/jars/spark-examples_2.11-2.1.1.jar \
100
四、配置Job History Server【Standalone】
- 将spark-default.conf.template复制为spark-default.conf
修改spark-default.conf文件,开启Log:
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop101:9000/directory
spark.eventLog.compress true
【注意:HDFS上的目录需要提前存在】
- 修改spark-env.sh文件,添加如下配置:
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://hadoop101:9000/directory"
- 注意:如果遇到Hadoop HDFS的写入权限问题:org.apache.hadoop.security.AccessControlException
解决方案: 在hdfs-site.xml中添加如下配置,关闭权限验证
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
五、配置Spark HA【Standalone】
集群部署完了,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠.
- Spark集群规划:master01,master02是Master;slave01,slave02,slave03是Worker
- 安装配置Zookeeper集群,并启动Zookeeper集群
- 停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置:
export SPARK_DAEMON_JAVA_OPTS=" -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"
具体步骤:
- 1.在 master01节点上修改spark-env.sh配置文件
- 2.将配置文件同步到所有节点。
- 3.在master01上执行sbin/start-all.sh脚本,启动集群并启动第一个master节点,然后在master02上执行sbin/start-master.sh启动第二个master节点。
- 4.程序中spark集群的访问地址需要改成:spark://master01:port1,master02:port2
六、配置Spark【Yarn】
- 修改Hadoop配置下的yarn-site.xml:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
- 修改Spark-env.sh 添加:
HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.7.3/etc/hadoop
YARN_CONF_DIR=/opt/hadoop/hadoop-2.7.3/etc/hadoop
网友评论