Spark分布式安装模式

Spark 分布式环境安装目前有四种模式:

1.Standalone:Spark 自带的简单群资源管理器,安装较为简单,不需要依赖 Hadoop;

2.Hadoop YARN:使用 YARN 作为集群资源管理,安装需要依赖 Hadoop;

3.Apache Mesos:不常用;

4.Kubernetes:不常用。

本地学习测试我们常用 Standalone 模式,生产环境常使用 YARN 模式。

示例集群信息

以下表格为本教程所用示例集群节点信息:

节点名称 节点角色
master worker,master
slave1 worker
slave2 worker

我们准备了三台虚拟服务器,连接方式如下:

服务器 SSH 密码 ip
master ssh 172.18.0.2 123456 172.18.0.2
slave1 ssh 172.18.0.3 123456 172.18.0.3
slave2 ssh 172.18.0.4 123456 172.18.0.4

第一步我们需要在 evassh 服务器初始化虚拟服务器:

复制代码
  1. cd /home
  2. wrapdocker
  3. ulimit -f 1024000
  4. docker load -i hbase-ssh2_v1.0.tar
  5. docker-compose up -d # 启动失败则等一会,再次执行,直至成功

注意:请不要在各个虚拟服务器之间进行 ssh 登录,这种操作会导致无法保存配置数据。正确方法是:在虚拟服务器里执行 exit 后回到 evassh 服务器,再按上述方法登录各虚拟服务器。

配置免密登录

Hadoop 集群在启动脚本时,会去启动各个节点,此过程是通过 SSH 去连接的,为了避免启动过程输入密码,需要配置免密登录。

1、分别在 master、slave1、slave 生成密钥,命令如下:

  1. ssh-keygen -t rsa

2、 在 master 复制 master、slave1、slave2 的公钥。

  1. cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
  2. ssh root@slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
  3. ssh root@slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

3、 分别在 slave1、slave2 复制 master 的 authorized_keys 文件。

  1. ssh root@master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

到此,免密已经成功,可以在各个虚拟服务器之间进行 ssh 登录,而不需要输入密码了。

准备Spark安装包

把 evassh 服务器的 /usr/local 目录下的 spark 安装包通过 SCP 命令上传到 master 虚拟服务器的 /usr/local 目录下。

  1. scp -r /usr/local/spark-2.3.4-bin-hadoop2.7 root@172.18.0.2:/usr/local

密码为:123456。

配置环境变量

我们将 Spark 的安装目录配置到 /etc/profile 中(在文件末尾添加)。

不要忘了 source /etc/profile

该步骤所有虚拟服务器节点均可执行。

修改 spark-env.sh 配置文件

首先生成一份 spark-env.sh 文件(master节点):

切换目录到:/usr/local/spark-2.3.4-bin-hadoop2.7/conf 执行命令:mv spark-env.sh.template spark-env.sh

修改 spark-env.sh 文件:

执行命令:vi spark-env.sh,添加以下内容:

复制代码
  1. #指定JAVA安装路径/usr/lib/jvm/jdk1.8.0_111
  2. export JAVA_HOME=java安装路径
  3. #指定SCALA安装位置,非必须配置,可不指定
  4. export SCALA_HOME=scala安装路径
  5. #指定spark master webui 端口,默认是 8080,跟 tomcat 冲突
  6. SPARK_MASTER_WEBUI_PORT=8888
  7. #指定Master节点IP或映射地址
  8. export SPARK_MASTER_IP=master节点IP或映射地址
修改 slaves 文件

首先生成一份 slaves 文件(master节点)。

切换到 Spark 的 conf 目录下, 执行命令: mv slaves.template slaves

修改 slaves 文件, 执行命令: vi slaves 在该文件中加入作为 worker 节点 ip 或映射主机名。

复制代码
  1. master
  2. slave1
  3. slave2
分发安装包

把 master 节点的 spark 安装包分发到 slave1 节点和 slave2 节点(通过 scp 命令)。

复制代码
  1. cd /usr/local
  2. scp -r spark-2.3.4-bin-hadoop2.7/ root@slave1:/usr/local
  3. scp -r spark-2.3.4-bin-hadoop2.7/ root@slave2:/usr/local
启动spark

切换到 master 节点安装目录的 /sbin 目录下 执行命令启动 Spark 集群:./start-all.sh

验证安装

输入 jps 命令查看。 master 节点有以下进程:

复制代码
  1. master
  2. worker

slave1 节点有以下进程:

复制代码
  1. worker

slave2 节点有以下进程:

复制代码
  1. worker
编程要求

请按照步骤小心安装,安装完成后点击测评即可。

测试说明

点击测评后,后台会通过curl http://172.18.0.2:8888/ 命令获取页面,并取其中部分内容来判定你是否安装成功。

预期输出:

复制代码
  1. <li><strong>Alive Workers:</strong> 3</li>
相关推荐
为儿打call43 分钟前
SparkSQL 广播超时排查:小表但是多分区 = BroadcastTimeout
大数据·spark
_Evan_Yao5 小时前
内存映射文件与零拷贝:Kafka、RocketMQ 飞升的秘密通道
分布式·kafka·rocketmq
与遨游于天地6 小时前
分布式锁从Redis到Redisson的演进
数据库·redis·分布式
计算机毕业编程指导师7 小时前
【Python大数据项目推荐】基于Hadoop+Django脑卒中风险分析系统源码解析 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·spark·毕业设计·脑卒中
计算机毕业编程指导师7 小时前
【大数据毕设推荐】Hadoop+Spark电影票房分析系统,Python+Django全栈实现 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·spark·毕业设计·电影票房
Francek Chen9 小时前
【大数据存储与管理】实验3:熟悉常用的HBase操作
大数据·数据库·分布式·hbase
七夜zippoe10 小时前
DolphinDB分布式表:创建与管理
数据库·分布式·维度·dolphindb·数据写入
KmSH8umpK10 小时前
Redis分布式锁进阶第十七篇
数据库·redis·分布式
fengxin_rou10 小时前
JVM 内存结构与内存溢出 / 泄漏问题全解析
java·开发语言·jvm·分布式·rabbitmq
gQ85v10Db1 天前
Redis分布式锁进阶第十七篇:微服务分布式锁全局治理 + 跨团队统一规范落地 + 全链路稳定性提升方案
redis·分布式·微服务