Spark1.0.2 Standalone 模式部署

2024-06-07 16:08

本文主要是介绍Spark1.0.2 Standalone 模式部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

节点说明

IP用户名主机名角色
10.6.2.109hadoopclientSpark客户端
10.6.2.111hadoopmasterHDFS(NameNode,SecondNameNode);Spark(Master,Worker)
10.6.2.112hadoopworker1HDFS(DataNode);Spark(Worker)
10.6.2.113hadoopworker2HDFS(DataNode);Spark(Worker)

节点说明:在10.6.2.111,10.6.2.112,10.6.2.113节点上应经搭建了hadoop-2.2.0完全分布式集群,具体教程见64位Centos6.5 Hadoop2.2.0 完全分布安装教程

1. Spark1.0.2 Standalone安装

1.1 下载安装包

这里写图片描述
从Spark官网上下载如图所示编译好的Spark安装包spark-1.0.2-bin-hadoop.tgz
注意:部署这个安装包的前提是已经安装好hadoop-2.2.0,否则会出现兼容问题

1.2 解压安装包

注意:以下操作均在10.6.2.111节点上
在当前用户目录下创建两个文件夹softwares和tar_package,将spark-1.0.2-bin-hadoop.tgz放置在 tar_package目录下,并解压到softwares目录下

cd ~/tar_package
tar -zxvf spark-1.0.2-bin-hadoop.tgz -C ~/softwares

进入softwares文件夹可以看到解压后的文件夹spark-1.0.2-bin-hadoop,将spark-1.0.2-bin-hadoop重命名为spark-1.0.2

mv spark-1.0.2-bin-hadoop spark-1.0.2

1.3 配置

所需修改的配置文件除了spark-env.sh文件以外,还有slave文件,都位于conf目录中。

cd ~/softwares/spark-1.0.2/conf/
vim slaves

添加下图所示内容,保存并退出
这里写图片描述

cp spark-env.sh.template spark-env.sh
vim spark-env.sh

添加如下内容,保存并退出

export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORE=3
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g

注释:

  • SPARK_MASTER_PORT:Master服务端口,默认为7077
  • SPARK_WORKER_CORES:每个Worker进程所需要的CPU核的数目
  • SPARK_WORKER_INSTANCES:每个Worker节点上运行Worker进程的数目
  • SPARK_WORKER_MEMORY:每个Worker进程所需要的内存大小

将配置好的Spark文件拷贝至每个Spark集群的节点上的相同路径中

scp  -r  /home/hadoop/softwares  hadoop@worker1:/home/hadoop/
scp  -r  /home/hadoop/softwares  hadoop@worker2:/home/hadoop/
scp  -r  /home/hadoop/softwares  hadoop@client:/home/hadoop/

为方便使用spark-shell,可以在环境变量中配置上SPARK_HOME
回到用户当前目录下,编辑.bash_profile文件

cd 
vim .bash_profile

添加如下内容,保存并退出

export SPARK_HOME=/home/hadoop/softwares/spark-1.0.2
export PATH=$PATH:$SPARK_HOME/bin

然后source一下

source .bash_profile

注意:在每个节点上都要设置.bash_profile文件

1.4 启动

在10.6.2.111节点上启动spark standalone集群

cd ~/softwares/spark-1.0.2/sbin
ls
./start-all.sh
jps

可以看到一个Jps进程,一个Master进程,一个Worker进程
在10.6.2.112上输入jps看到一个Jps进程,一个Worker进程
在10.6.2.113上输入jps看到一个Jps进程,一个Worker进程


在10.6.2.111节点上,通过浏览器访问http://master:8080可以监控spark Standalone集群
这里写图片描述

2. Spark1.0.2 Standalone HA的实现

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

  • 基于文件系统的单点恢复
  • 基于zookeeper的Standby Masters

基于文件系统的单点恢复主要用于开发或测试环境下。基于zookeeper的Standby Masters用于生产模式下。本文档采用 基于zookeeper的Standby Masters。

2.1 安装zookeeper

2.1.1 下载安装包

zookeeper-3.4.6下载地址

2.1.2 解压安装包

注意:以下操作均在10.6.2.111节点上
将zookeeper-3.4.6.tar.gz放置在 tar_package目录下,并解压到softwares目录下

cd ~/tar_package
tar -zxvf zookeeper-3.4.6.tar.gz -C ~/softwares

2.1.3 配置

cd ~/softwares/zookeeper-3.4.6/conf
ls
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

添加如下内容,保存并退出

dataDir=/home/hadoop/softwares/zookeeper-3.4.6/data
dataLogDir=/home/hadoop/softwares/zookeeper-3.4.6/datalog
server.1=master:2888:3888
server.2=worker1:2888:3888
server.3=worker2:2888:3888

然后回到zookeeper-3.4.6目录下进行操作

cd ..
mkdir data
mkdir datalog
echo 1 > data/myid

将配置好的zookeeper文件拷贝至每个集群每个节点上的相同路径中并修改每个节点的myid

scp  -r  /home/hadoop/softwares/zookeeper-3.4.6  hadoop@worker1:/home/hadoop/softwares
scp  -r  /home/hadoop/softwares/zookeeper-3.4.6  hadoop@worker2:/home/hadoop/softwares

在10.6.2.112节点上,在用户当前目录下

cd ~/softwares/zookeeper-3.4.6/
echo 2 > data/myid

在10.6.2.113节点上,在用户当前目录下

cd ~/softwares/zookeeper-3.4.6/
echo 3 > data/myid

2.1.4 启动zookeeper

在10.6.2.111节点上,在用户当前目录下

cd ~/softwares/zookeeper-3.4.6/bin
./zkServer.sh start

在10.6.2.112,10.6.2.113进行同样的操作启动zookeeper。
启动完成后,在每个节点上jps可以看到 QuorumPeerMain进程。

2.2 重新配置spark-env.sh文件

注意:以下操作均在10.6.2.111节点上

cd ~/softwares/spark-1.0.2/sbin/
./stop-all.sh
cd ~/softwares/spark-1.0.2/conf/
vim spark-env.sh

添加如下内容,注释掉export SPARK_MASTER_IP=master export SPARK_MASTER_PORT=7077这两行,保存并退出

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,worker1:2181    ,worker2:2181 -Dspark.deploy.zookeeper.dir=/spark"

将配置spark-env.sh文件发放给各节点

scp spark-env.sh hadoop@worker1:/home/hadoop/softwares/spark-1.0.2/conf/
scp spark-env.sh hadoop@worker2:/home/hadoop/softwares/spark-1.0.2/conf/

在10.6.2.111节点上启动spark standalone集群

cd ~/softwares/spark-1.0.2/sbin
ls
./start-all.sh

再在10.6.2.112节点上启动Master进程

cd ~/softwares/spark-1.0.2/sbin
ls
./start-master.sh

在10.6.2.111节点上,通过浏览器访问http://master:8080和http://worker1:8080,如下图所示
这里写图片描述
这里写图片描述
10.6.2.111节点上的Master进程的状态是alive,10.6.2.112节点上的Master进程的状态是standby。
一旦10.6.2.111节点上的Master进程关闭,10.6.2.112节点上的Master进程的状态会变成alive。

这篇关于Spark1.0.2 Standalone 模式部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1039651

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一