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

Spark自带的集群模式(Standalone),Spark/Sparkha集群搭建

1、Spark自带的集群模式对于Spark自带的集群模式,Spark要先启动一个老大(Master),然后老大Master和各个小弟&#

1、Spark自带的集群模式

对于Spark自带的集群模式,Spark要先启动一个老大(Master),然后老大Master和各个小弟(Worker)进行通信,其中真正干活的是Worker下的Executor。关于提交任务的,需要有一个客户端,这个客户端叫做Driver.这个Driver首先和Master建立通信,然后Master负责资源分配,然后让Worker启动Executor,然后Executor和Driver进行通信。效果图如下:
这里写图片描述


2、Spark集群搭建(先非HA—>再HA)

这里写图片描述


2.1. 机器准备

A:准备5台Linux服务器(hadoop1(Master),hadoop2(Master),hadoop3(worker),hadoop4(worker),hadoop5(worker))
B:安装好/usr/local/jdk1.8.0_73


2.2. 下载Spark安装包

下载地址:http://spark.apache.org/downloads.html
这里写图片描述

https://d3kbcqa49mib13.cloudfront.net/spark-2.1.1-bin-hadoop2.7.tgz
上传解压安装包
上传spark-2.1.1-bin-hadoop2.7.tgz安装包到Linux上的/home/tuzq/software
这里写图片描述
解压安装包到指定位置

[root@hadoop1 software] cd /home/tuzq/software
[root@hadoop1 software] tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /home/tuzq/software
[root@hadoop1 software]# cd spark-2.1.1-bin-hadoop2.7
[root@hadoop1 spark-2.1.1-bin-hadoop2.7]# ls
bin conf data examples jars LICENSE licenses NOTICE python R README.md RELEASE sbin yarn
[root@hadoop1 spark-2.1.1-bin-hadoop2.7]#

2.3. 配置Spark

进入到Spark安装目录

cd /home/tuzq/software/spark-2.1.1-bin-hadoop2.7

进入conf目录并重命名并修改spark-env.sh.template文件

[root@hadoop1 spark-2.1.1-bin-hadoop2.7]# cd conf/
[root@hadoop1 conf]# pwd
/home/tuzq/software/spark-2.1.1-bin-hadoop2.7/conf
[root@hadoop1 conf]# mv spark-env.sh.template spark-env.sh
[root@hadoop1 conf]# vim spark-env.sh

在该配置文件中添加如下配置

export JAVA_HOME=/usr/local/jdk1.8.0_73
export SPARK_MASTER_IP=hadoop1
export SPARK_MASTER_PORT=7077

保存退出
重命名并修改slaves.template文件

mv slaves.template slaves
vi slaves

在该文件中添加子节点所在的位置(Worker节点)
hadoop3
hadoop4
hadoop5
保存退出

配置环境变量:

vim /etc/profile#set spark env
export SPARK_HOME=/home/tuzq/software/spark-2.1.1-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/binsource /etc/profile

将配置好的Spark拷贝到其他节点上

cd /home/tuzq/software
scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop2:$PWD
scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop3:$PWD
scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop4:$PWD
scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop5:$PWD

Spark集群配置完毕,目前是1个Master,3个Work,在hadoop1上启动Spark集群

/home/tuzq/software/spark-2.1.1-bin-hadoop2.7/sbin/start-all.sh

运行结果:
这里写图片描述

如果想停止,就用:

/home/tuzq/software/spark-2.1.1-bin-hadoop2.7/sbin/stop-all.sh

启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://hadoop1:8080/
这里写图片描述


2.4.Spark-Ha集群配置

到此为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:
Spark集群规划:hadoop1,hadoop2是Master;hadoop3,hadoop4,hadoop5是Worker
安装配置zk集群,并启动zk集群(hadoop11,hadoop12,hadoop13)
停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop11,hadoop12,hadoop13 -Dspark.deploy.zookeeper.dir=/spark"

效果如下:
这里写图片描述

将修改的配置同步到hadoop2,hadoop3,hadoop4,hadoop5这些机器上

[root@hadoop1 conf]# pwd /home/tuzq/software/spark-2.1.1-bin-hadoop2.7/conf
[root@hadoop1 conf]# scp -r * root@hadoop2:$PWD
[root@hadoop1 conf]# scp -r * root@hadoop3:$PWD
[root@hadoop1 conf]# scp -r * root@hadoop4:$PWD
[root@hadoop1 conf]# scp -r * root@hadoop5:$PWD

1. 在hadoop1节点上修改slaves配置文件内容指定worker节点(本篇博客上hadoop3,hadoop4,hadoop5为worker,hadoop1和hadoop2 master)
2. 在hadoop1上执行sbin/start-all.sh脚本,然后在hadoop2上执行sbin/start-master.sh启动第二个Master(注意在启动之前先停止启动了的单集群)

[root@hadoop2 ~]# cd $SPARK_HOME
[root@hadoop2 spark-2.1.1-bin-hadoop2.7]# sbin/start-all.sh

这里写图片描述

[root@hadoop2 ~]# cd $SPARK_HOME
[root@hadoop2 spark-2.1.1-bin-hadoop2.7]# sbin/start-master.sh

这里写图片描述

3、接着访问http://hadoop1:8080/:
效果如下:
这里写图片描述
上面的状态是:ALIVE状态
接着访问http://hadoop2:8080/:
这里写图片描述
上面的状态是:STANDBY状态,通过上面的这些现象可以知道Spark集群已经搭建成功


推荐阅读
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在 openSUSE Tumbleweed 系统上搭建 51 单片机开发环境并进行编程实践。首先,通过 `sudo zypper in emacs` 命令安装文本编辑器 Emacs。接着,使用 `sudo zypper in sdcc` 安装 SDCC 编译器。最后,利用 `wget` 下载 sdcflash Python 脚本,以便于单片机的烧录和调试。此外,还介绍了如何配置开发环境,确保各组件协同工作,提高开发效率。 ... [详细]
  • 利用Apache构建高效稳定的Web服务器环境
    本文详细介绍了如何利用Apache构建高效稳定的Web服务器环境。首先,概述了Apache服务器的基本概念及其安装步骤,并深入探讨了相关配置文件的设置方法。接着,通过具体的实验环境示例,展示了服务端(域名:zhangpp63.cn,IP地址:192.168.1.63)和客户端的配置过程,确保读者能够全面理解并实际应用这些技术。此外,还提供了一些优化建议,以提高服务器的性能和稳定性。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
author-avatar
kaga1990_106
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有