Spark集群安装配置

一、准备工作

1.安装centos 6.5

2.安装 jdk 1.8.x

3.配置三台机器之间的ssh通信

4.安装hadoop2.7.x以上的版本

以上步骤在已经配置,本文不再多说。

https://blog.youkuaiyun.com/yangang1223/article/details/79883113

二、安装spark

依旧是三台机器:

master:192.168.163.145

worker1:192.168.163.146

worker2:192.168.163.147

1.spark是scala语言开发,依赖于scala,所以在这之前我们先装scala

本文选择scala 2.11.8

在spark官网和scala官网或清华大学镜像站下载


本文使用spark-2.2.0-bin-hadoop2.7.tgz进行安装,如果是生产环境也可以下载源码包进行编译。

$tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz

$tar -zxvf scala-2.11.8.tgz

$mv spark-2.1.1-bin-hadoop2.7 spark-2.1.1

$mkdir scala

$mv scala-2.11.8 scala


$vim ~/.bash_profile加入SCALA_HOME和SPARK_HOME,以及bin和sbin目录

JAVA_HOME=/app/java/jdk1.8.0_141
HADOOP_HOME=/app/hadoop/hadoop-2.7.3
SCALA_HOME=/app/scala/scala-2.11.8
SPARK_HOME=/app/spark/spark-2.1.1

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin


保存退出

$ source ~/.bash_profile

查看scala版本


2.进入spark根目录的conf目录,配合slaves配置文件

cp slaves.template slaves 复制一份样本文件 打开


说明:slaves文件里面写三个集群的主机名意味着三个节点都会有worker节点计算,你也可以不写master节点,让worker运行在worker1和worker2上


配置spark-env.sh,几个home比较重要后面的可以不做配置,默认就是。

export JAVA_HOME=/app/java/jdk1.8.0_141
export HADOOP_HOME=/app/hadoop/hadoop-2.7.3
export SCALA_HOME=/app/scala/scala-2.11.8
export SPARK_HOME=/app/spark/spark-2.1.1

export HADOOP_CONF_DIR=/app/hadoop/hadoop-2.7.3/etc/hadoop
export SPARK_DIST_CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath)
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_EXECUTOR_INSTANCES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1024M
export SPARK_MASTER_WEBUI_PORT=8080

export SPARK_CONF_DIR=$SPARK_HOME/conf

3.至此master节点spark配置完成,现在将spark和scala分发到worker1和worker2上

[hadoop@master app]$ scp -r spark hadoop@worker1:/app/

[hadoop@master app]$ scp -r spark hadoop@worker2:/app/

[hadoop@master app]$ scp -r spark hadoop@worker1:/app/

[hadoop@master app]$ scp -r spark hadoop@worker2:/app/

将master节点的环境变量配置也分发过去

[hadoop@master app]$ scp ~/.bash_profile hadoop@worker1:~/

[hadoop@master app]$ scp ~/.bash_profile hadoop@worker2:~/

进入master节点的sbin目录

./start-all.sh或者分开启动./start-master.sh start 、./start-slaves.sh start

[hadoop@master sbin]$ ./start-all.sh 

查看worker1、worker2节点的jps



4.在浏览器输入192.168.163.145:8080


至此spark集群配置完成。


### 安装配置 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、付费专栏及课程。

余额充值