热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

构建高可用性Spark分布式集群:大数据环境下的最佳实践

在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用`ssh-keygen-trsa`命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的`~/.ssh/authorized_keys`文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。

免密登录配置

1 所有节点生成密钥

ssh-keygen -t rsa# 一直回车,使用默认配置#根目录查看.ssh文件ls -atrl

.ssh文件夹目录说明:

id_rsa:私钥

id_rsa.pub:公钥

2 主节点生成认证文件

cat .ssh/id_rsa.pub >> .ssh/authorized_keys#认证文件authorized_keys保存所有节点的公钥#221-223do i in {1..2}; ssh 192.168.23.22$i cat .ssh/id_rsa.pub >> .ssh/authorized_keys;done#216ssh 192.168.23.216 cat .ssh/id_rsa.pub >> .ssh/authorized_keys;#将认证文件复制到所有节点do i in {1..2}; scp .ssh/authorized_keys pjb@192.168.23.22$i:/home/pjb/.ssh/authorized_keysdone#216scp .ssh/authorized_keys pjb@192.168.23.216:/home/pjb/.ssh/authorized_keys

3 所有节点授权

#授权chmod -R 700 .sshchmod -R 600 .ssh/authorized_keys# 验证ssh 192.168.23.222

zookeeper集群搭建

1 下载

zookeeper官网:https://zookeeper.apache.org/releases.html

zookeeper安装包:apache-zookeeper-3.5.7-bin.tar.gz

2 上传服务器

将zookeeper安装包上传到各个节点:192.168.23.221-223

3 安装

1)准备工作

#解压tar -zxvf apache-zookeeper-3.5.7-bin.tar.gzcd apache-zookeeper-3.5.7-bin#创建数据和日志目录mkdir datamkdir logs#复制生成zoo.cfg文件cd confcp zoo_sample.cfg zoo.cfg

2)修改zoo.cfg文件

#数据和日志目录dataDir=/home/pjb/bigdata/apache-zookeeper-3.5.7-bin/datadataLogDir=/home/pjb/bigdata/apache-zookeeper-3.5.7-bin/logs#所有节点server.1=KUD01:2888:3888server.2=KUD02:2888:3888server.3=KUD03:2888:3888

3)创建myid文件

根据zoo.cfg中各个节点配置myid信息,即:server.myid编号,在各个节点的data目录下创建myid文件

#在192.168.23.221cd /home/pjb/bigdata/apache-zookeeper-3.5.7-bin/dataecho 1 >> myid#192.168.23.222,192.168.23.223分别是:echo 2 >> myid,echo 3 >> myid

4)启动

在各个节点执行

cd /home/pjb/bigdata/apache-zookeeper-3.5.7-bin/bin#启动zookeeper./zkServer.sh start#查看集群状态./zkServer.sh status#1个主节点,2个从节点#1台: Mode: leader 2台:Mode: follower

spark集群规格
0f4f188f46d669cc02547aa86c058979.png

spark集群规格

1 下载

spark官网:http://spark.apache.org/

spark安装包:spark-2.4.5-bin-hadoop2.7.tgz

2 安装配置

1)修改spark-env.sh文件

export JAVA_HOME=/usr/java/jdk1.8.0_172#SPARK_MASTER_HOST=192.168.23.221#PARK_MASTER_PORT=7077export SPARK_DAEMON_JAVA_OPTS="  -Dspark.deploy.recoveryMode=ZOOKEEPER  -Dspark.deploy.zookeeper.url=KUD01,KUD02,KUD03   -Dspark.deploy.zookeeper.dir=/spark-info"

2)将spark-env.sh复制到其他所有节点

3)启动主节点(192.168.23.221)

cd /home/pjb/bigdata/spark-2.4.5-bin-hadoop2.7/sbin./start-all.sh

4)启动备份主节点(192.168.23.216)

cd /home/pjb/bigdata/spark-2.4.5-bin-hadoop2.7/sbin./start-master.sh

5)验证

主节点:http://192.168.23.221:8080/

b50a4997ca062dbcc786499464b80113.png

spark管理页面

备份主节点:http://192.168.23.216:8080/

b6712c0df2e4af8c8b095b4ee153d091.png

spark管理页面

提交一个spark应用到spark集群运行

cd /home/pjb/bigdata/spark-2.4.5-bin-hadoop2.7./bin/spark-submit --master spark://KUD01:7077,HSlave02:7077 --class org.apache.spark.examples.SparkPi --executor-memory 2048mb --total-executor-cores 12 examples/jars/spark-examples_2.11-2.4.5.jar 1000

--executor-memory 每个executor使用的内存大小

--total-executor-cores 整个app使用的核数

运行spark shell

spark-shell是一个交互式的命令行,里面可以写spark程序,方便学习和测试,它也是一个客户端,用于提交spark应用程序

1 local模式

/bigdata/spark-2.4.5-bin-hadoop2.7/bin/spark-shell

上面的方式没有指定master的地址,即用的是spark的local模式运行的(模拟的spark集群运行的过程)

2 集群模式

/bigdata/spark-2.4.5-bin-hadoop2.7/bin/spark-shell --master spark://KUD01:7077,192.168.23.216:7077

上面是指定了master的地址,那么就会将任务提交到集群,开始时sparksubmit(客户端)要连接Master,并申请计算资源(内存和核数),Master进行资源调度(就是让那些Worker启动Executor),在准备工作时,这些进程都已经创建好了

ed22d1024c758d9600a737d26fc4537a.png

spark-shell

3 完成WordCount

sc.textFile("hdfs://KUD01:9000/spark/test").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).collect



推荐阅读
  • 在Linux系统中Nginx环境下SSL证书的安装步骤与WordPress CDN的高级配置指南
    在Linux系统中,Nginx环境下安装SSL证书的具体步骤及WordPress CDN的高级配置指南。首先,安装SSL证书需要准备两个关键配置文件,并建议在操作前备份相关服务器配置文件,以确保数据安全。随后,本文将详细介绍如何在Nginx中正确配置SSL证书,以及如何优化WordPress的CDN设置,提升网站性能和安全性。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 【原创】七、Hadoop 2.5.2+zookeeper高可用部署
    一、原理(四大要点)(1)保证元数据一致(edits)namenode(fsimage edits)a、NFSb、journalnodec、zk(2)只有一台namenode对外提 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 在Python 3环境中,当无法连接互联网时,可以通过下载离线模块包来实现模块的安装。具体步骤包括:首先从PyPI网站下载所需的模块包,然后将其传输到目标环境,并使用`pip install`命令进行本地安装。此方法不仅适用于单个模块,还支持依赖项的批量安装,确保开发环境的完整性和一致性。 ... [详细]
  • 深入解析 Unity URP/SRP 渲染管线:匠心打造的全面指南
    本文深入探讨了Unity中的URP、SRP和HDRP渲染管线,详细解析了它们之间的关系及各自的特点。首先介绍了SRP的基本概念及其在Unity渲染架构中的作用,随后重点阐述了URP和HDRP的设计理念与应用场景。文章还分析了SRP诞生的背景,解释了为何Unity需要引入这一灵活的渲染框架,以满足不同项目的需求。通过对比URP和HDRP,读者可以更好地理解如何选择合适的渲染管线,以优化项目的性能和视觉效果。 ... [详细]
  • 读书笔记来自图解HTTP1.HTTP的缺点 通信使用明文(不加密),内容可能会被窃听不验证通信方的身份,因此有可能遭遇伪装无 ... [详细]
  • Python彻底搞懂中文乱码问题
    本文转自:https:blog.csdn.netjoyfixingarticledetails79971667感谢作者!前言曾几何时Python中文乱码的问题困扰了我很多很多年,每 ... [详细]
  • Hadoop + Spark安装(三) —— 调hadoop
    ***************************测试hadoop及问题跟进***************************执行以下语句报错datahadoop-2.9. ... [详细]
  • 前期Linux环境准备1.修改Linux主机名2.修改IP3.修改主机名和IP的映射关系4.关闭防火墙5.ssh免登陆6.安装JDK,配置环境变量等集群规划主机 IP安装软件运行进 ... [详细]
  • 安装hadoop2.9.2jdk1.8centos7
    安装JDK1.8查看JDK1.8的安装https:www.cnblogs.comTJ21p13208514.html安装hadoop上传hadoop下载hadoop地址http:m ... [详细]
  • Zookeeper分布式过程协同技术部署及设置
    Zookeeper分布式过程协同技术-部署及设置Zookeeper支持单机模式、伪集群模式、集群模式三种部署方式。演示部署环境为CentOS、jdk版本为1.8、Zookeeper ... [详细]
  • 转载:https:blog.csdn.nethigh2011articledetails70155431清华大学镜像网:https:mirrors.tu ... [详细]
author-avatar
xuzhaotong
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有