Spark集群安装

3.1 下载 spark 安装包
下载地址 spark 官网: http://spark.apache.org/downloads.html

这里我们使用 spark-2.0.2-bin-hadoop2.7 版本.
3.2 规划安装目录

/opt/bigdata
3.3 解压安装包

tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz

3.4 重命名目录
mv spark-2.0.2-bin-hadoop2.7 spark

3.5 修改配置文件

配置文件目录在 /opt/bigdata/spark/conf
vi spark-env.sh 修改文件(先把 spark-env.sh.template 重命名
为 spark-env.sh)

#配置 java 环境变量
export JAVA_HOME=/opt/bigdata/jdk1.7.0_67
#指定 spark 老大 Master 的 IP
export SPARK_MASTER_HOST=hdp-node-01
#指定 spark 老大 Master 的端口
export SPARK_MASTER_PORT=7077

 vi slaves 修改文件(先把 slaves.template 重命名为 slaves)
hdp-node-02
hdp-node-03

3.6 拷贝配置到其他主机
通过 scp 命令将 spark 的安装目录拷贝到其他机器上
scp -r /opt/bigdata/spark hdp-node-02:/opt/bigdata
scp -r /opt/bigdata/spark hdp-node-03:/opt/bigdata

3.7 配置 spark 环境变量
将 spark 添加到环境变量,添加以下内容到 /etc/profile
export SPARK_HOME=/opt/bigdata/spark
export PATH=$PATH:$SPARK_HOME/bin
注意最后 source /etc/profile 刷新配置

3.7 启动 spark
#在主节点上启动 spark
/opt/bigdata/spark/sbin/start-all.sh

3.8 停止 spark
#在主节点上停止 spark 集群
/opt/bigdata/spark/sbin/stop-all.sh

3.9 spark 的 web 界面
正常启动 spark 集群后,可以通过访问 http://hdp-node-01:8080,查看 spark 的 web 界面,
查看相关信息。

Spark HA 高可用部署
4.1 高可用部署说明
Spark Standalone 集群是 Master-Slaves 架构的集群模式, 和大部分的Master-Slaves 结构集群一样, 存在着 Master 单点故障的问题。 如何解决这个单点故障的问题, Spark 提供了l两种方案:

( 1) 基 于 文 件 系 统 的 单 点 恢 复 (Single-Node Recovery with Local FileSystem)。
主要用于开发或测试环境。 当 spark 提供目录保存 spark Application和 worker 的注册信息, 并将他们的恢复状态写入该目录中, 这时, 一旦 Master发生故障, 就可以通过重新启动 Master 进程( sbin/start-master.sh) , 恢复已运行的 spark Application 和 worker 的注册信息。
( 2) 基于 zookeeper 的 Standby Masters(Standby Masters with ZooKeeper)。用于生产模式。 其基本原理是通过 zookeeper 来选举一个 Master, 其他的 Master 处于 Standby 状态。 将 spark 集群连接到同一个 ZooKeeper 实例并启动多个 Master, 利用 zookeeper 提供的选举和状态保存功能, 可以使一个 Master被选举成活着的 master, 而其他 Master 处于 Standby 状态。 如果现任 Master死去, 另一个 Master 会通过选举产生, 并恢复到旧的 Master 状态, 然后恢复调度。 整个恢复过程可能要 1-2 分钟。

4.2 基于 zookeeper 的 Spark HA 高可用集群部署
该 HA 方案使用起来很简单, 首先需要搭建一个 zookeeper 集群, 然后启动
zooKeeper 集群, 最后在不同节点上启动 Master。 具体配置如下:

(1)vim spark-env.sh
注释掉 export SPARK_MASTER_HOST=hdp-node-01
(2)在 spark-env.sh 添加 SPARK_DAEMON_JAVA_OPTS, 内容如下:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hdp-node-01:2181,hdp-node-02:2181,hdp-node-03:2181
-Dspark.deploy.zookeeper.dir=/spark"
参数说明
spark.deploy.recoveryMode: 恢复模式( Master 重新启动的模式)
有三种: (1)ZooKeeper (2) FileSystem (3)NONE
spark.deploy.zookeeper.url: ZooKeeper 的 Server 地址
spark.deploy.zookeeper.dir: 保存集群元数据信息的文件、 目录。
包括 Worker, Driver 和 Application。

注意:
在普通模式下启动 spark 集群, 只需要在主机上面执行 start-all.sh 就可以了。
在高可用模式下启动 spark 集群, 先需要在任意一台节点上启动 start-all.sh 命令。

然后在另外一台节点上单独启动 master。 命令 start-master.sh。




### 安装与配置 Spark 集群 #### 1. 下载并解压 Spark 软件包 首先需要下载适合版本的 Spark 软件包,例如 `spark-3.0.0-bin-hadoop3.2.tgz`。将其上传至服务器并解压缩到指定目录。 ```bash tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz mv spark-3.0.0-bin-hadoop3.2 /usr/local/spark ``` 此步骤完成后,需确保所有节点均拥有相同的 Spark 文件夹结构[^2]。 --- #### 2. 设置 SPARK_HOME 环境变量 编辑 `/etc/profile` 或者用户的 `.bashrc` 文件,添加如下内容: ```bash export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin ``` 随后通过以下命令使更改生效: ```bash source ~/.bashrc ``` 这一步骤是为了方便后续在终端中直接调用 Spark 的相关工具。 --- #### 3. 修改 Spark 配置文件 Spark 的配置文件位于其安装路径下的 `conf/` 目录中。以下是主要的几个配置文件及其作用: ##### (1) **`spark-defaults.conf`** 该文件用于定义默认参数设置。可以在此处添加一些常用的属性,比如: ```properties spark.master spark://master:7077 spark.executor.memory 2g spark.driver.memory 1g ``` 上述配置指定了 Master 地址以及 Executor 和 Driver 的内存大小。 ##### (2) **`spark-env.sh`** 这个脚本用来设定环境变量和其他高级选项。如果尚未存在,则可以从模板创建它: ```bash cp conf/spark-env.sh.template conf/spark-env.sh ``` 接着打开文件进行编辑,加入 JDK 和 Scala 的路径声明: ```bash JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 SCALA_HOME=/usr/local/scala ``` 注意这里假设已经完成了 Java 和 Scala 的安装与配置[^5]。 ##### (3) **`slaves` 文件** 列出所有的 Worker 节点主机名或 IP 地址。例如: ``` worker1.example.com worker2.example.com worker3.example.com ``` 保存后同步这些改动到其余机器上以保持一致性[^1]。 --- #### 4. 实现免密码 SSH 登陆 为了简化管理流程,建议配置无密码访问机制以便于跨节点通信。具体方法是在 Master 上生成公钥,并将其追加到各 Slave 用户家目录内的 authorized_keys 中去。 --- #### 5. 将 Spark 复制到其他节点 利用 SCP 工具或者 rsync 技术快速传播已调整完毕的数据副本给集群成员们共享使用: ```bash rsync -avz /usr/local/spark user@worker1:/usr/local/ ``` 重复以上指令直至覆盖全部目标位置为止。 --- #### 6. 启动 Spark 集群 进入任意一台作为主控角色的工作站里运行启动命令: ```bash sbin/start-all.sh ``` 此时会自动连接各个子单元形成整体网络体系[^3]。 可以通过浏览器输入 http://<Master_IP>:8080 来验证是否成功加载 Web UI 页面显示当前状态信息。 --- #### 7. 测试功能正常与否 最后安排简单的作业来检验整个系统的运转情况。例如提交一段基于 HDFS 存储数据源的任务实例化过程演示效果如何等等。 --- ### 注意事项 在整个过程中需要注意两点:一是确认防火墙策略允许必要的端口开放;二是时刻关注日志记录寻找潜在错误提示加以解决[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值