Spark 配置
Apache Spark 是一个开源集群运算框架,作用类似于 Hadoop 的 MapReduce 。但是相对于 MapReduce 来说它的速度要快得多。
环境介绍
软件版本如下:
| Program | Version | URL | 
|---|---|---|
| System | CentOS-7-x86_64-Minimal-1810 | TUNA Mirrors | 
| JAVA | jdk-8u211-linux-x64.tar.gz | Oracle | 
| Hadoop | hadoop-2.6.0.tar.gz | Apache Archive | 
| Spark | spark-2.0.0-bin-hadoop2.6.gz | Apache Archive | 
| ZooKeeper | zookeeper-3.4.5.tar.gz | Apache Archive | 
目标
- 完成 Standalone 集群搭建
- 在 YARN 上运行 Spark
- 在 Mesos 上运行 Spark
基础环境配置
参考 Hadoop HA 搭建 目前已完成 Hadoop/ZooKeeper 环境搭建
下载解压
| 1 | curl -O http://archive.apache.org/dist/spark/spark-2.0.0/spark-2.0.0-bin-hadoop2.6.tgz | 
Standalone Mode
使用这种模式搭建,不需要借助其他外部工具(高可用性需要 ZooKeeper)
手动启动集群
先搭建一个最简单的
| HostName | Mode | IP | 
|---|---|---|
| master | Master | 192.168.66.128 | 
| slave1 | Worker | 192.168.66.129 | 
| slave2 | Worker | 192.168.66.130 | 
不需要修改任何配置,直接启动即可。
| 1 | master | 
用浏览器打开的 Web UI 看看 http://master:8080/
其中的 URL 是让其他的 Workers 连接到 master 的重要参数

将程序传到另外两台机子上
| 1 | scp -r /usr/local/src/spark slave1:/usr/local/src/ | 
接下来在另外两台机子上启动 workers 并连接到 master
| 1 | 两台机子都要运行 | 
如图出现了两个 Worker 且 State 处于 ALIVE 搭建完毕

脚本启动集群
首先将之前启动的服务都手动关掉
| 1 | master | 
| 1 | 两个 slave 都需要关闭 | 
将默认的配置文件改名为正式使用
| 1 | cd /usr/local/src/spark/conf/ | 
修改 slaves 文件删掉里面的所有内容写入以下内容
| 1 | slave1 | 
修改 spark-env.sh 文件指定 master,写入以下内容
| 1 | SPARK_MASTER_HOST=master | 
如果不写
JAVA_HOME的话,在启动slave的时候会报JAVA_HOME is not set估计是因为我的JAVA_HOME设置的仅对root生效的原因吧
将配置文件同步给另外两台机子
| 1 | scp -r /usr/local/src/spark/conf/ slave1:/usr/local/src/spark/ | 
在 master 上面启动 master 和 slaves
| 1 | cd /usr/local/src/spark/sbin/ | 
启动成功后浏览器打开 http://master:8080/ 看看,应该和上面的图片是一样的
下面的命令可以关闭
| 1 | ./stop-master.sh | 
高可用
编辑配置文件
| 1 | vi /usr/local/src/spark/conf/spark-env.sh | 
在配置文件中新增以下内容
| 1 | SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/sparkha" | 
注意如果你之前添加了
SPARK_MASTER_HOST=master要删掉,因为master的任命被ZooKeeper接管了这个配置没用了
将配置同步到另外两台机器上
| 1 | scp -r /usr/local/src/spark/conf/ slave1:/usr/local/src/spark/ | 
启动 ZooKeeper,如果你还没有配置可以参考这篇文章Hadoop HA 配置 - ZooKeeper 配置
| 1 | 每台机子都要启动 | 
在 mastrt 上启动 master 和 slaves
| 1 | ./start-master.sh | 
在 slave1 上启动 备用 master
| 1 | ./start-master.sh | 

参考
博客园@Mr.心弦 - Kafka【第一篇】Kafka集群搭建