Python搭建Spark分布式集群环境


Posted in Python onJuly 05, 2019

前言

Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark 最大的特点就是快,可比 Hadoop MapReduce 的处理速度快 100 倍。本文没有使用一台电脑上构建多个虚拟机的方法来模拟集群,而是使用三台电脑来搭建一个小型分布式集群环境安装。

本教程采用Spark2.0以上版本(比如Spark2.0.2、Spark2.1.0等)搭建集群,同样适用于搭建Spark1.6.2集群。

安装Hadoop并搭建好Hadoop集群环境

Spark分布式集群的安装环境,需要事先配置好Hadoop的分布式集群环境。

安装Spark

这里采用3台机器(节点)作为实例来演示如何搭建Spark集群,其中1台机器(节点)作为Master节点,另外两台机器(节点)作为Slave节点(即作为Worker节点),主机名分别为Slave01和Slave02。

在Master节点机器上,访问Spark官方下载地址,按照如下图下载。

Python搭建Spark分布式集群环境

下载完成后,执行如下命令:

sudo tar -zxf ~/下载/spark-2.0.2-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.0.2-bin-without-hadoop/ ./spark
sudo chown -R hadoop ./spark

配置环境变量

在Mster节点主机的终端中执行如下命令:

vim ~/.bashrc

在.bashrc添加如下配置:

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

执行如下命令使得配置立即生效:

source ~/.bashrc

Spark配置

在Master节点主机上进行如下操作:

配置slaves文件

将 slaves.template 拷贝到 slaves

cd /usr/local/spark/
cp ./conf/slaves.template ./conf/slaves

slaves文件设置Worker节点。编辑slaves内容,把默认内容localhost替换成如下内容:

slave01
slave02

配置spark-env.sh文件

将 spark-env.sh.template 拷贝到 spark-env.sh

cp ./conf/spark-env.sh.template ./conf/spark-env.sh

编辑spark-env.sh,添加如下内容:

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.1.104

SPARK_MASTER_IP 指定 Spark 集群 Master 节点的 IP 地址;

配置好后,将Master主机上的/usr/local/spark文件夹复制到各个节点上。在Master主机上执行如下命令:

cd /usr/local/
tar -zcf ~/spark.master.tar.gz ./spark
cd ~
scp ./spark.master.tar.gz slave01:/home/hadoop
scp ./spark.master.tar.gz slave02:/home/hadoop

在slave01,slave02节点上分别执行下面同样的操作:

sudo rm -rf /usr/local/spark/
sudo tar -zxf ~/spark.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/spark

启动Spark集群

启动Hadoop集群

启动Spark集群前,要先启动Hadoop集群。在Master节点主机上运行如下命令:

cd /usr/local/hadoop/
sbin/start-all.sh

启动Spark集群

1.启动Master节点

在Master节点主机上运行如下命令:

cd /usr/local/spark/
sbin/start-master.sh

在Master节点上运行jps命令,可以看到多了个Master进程:

15093 Jps
14343 SecondaryNameNode
14121 NameNode
14891 Master
14509 ResourceManager

2.启动所有Slave节点

在Master节点主机上运行如下命令:

sbin/start-slaves.sh

分别在slave01、slave02节点上运行jps命令,可以看到多了个Worker进程

37553 DataNode
37684 NodeManager
37876 Worker
37924 Jps

3.在浏览器上查看Spark独立集群管理器的集群信息

在master主机上打开浏览器,访问http://master:8080,如下图:

Python搭建Spark分布式集群环境

关闭Spark集群

1.关闭Master节点

sbin/stop-master.sh

2.关闭Worker节点

sbin/stop-slaves.sh

3.关闭Hadoop集群

cd /usr/local/hadoop/
sbin/stop-all.sh

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python tempfile模块学习笔记(临时文件)
May 25 Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
python3 读写文件换行符的方法
Apr 09 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
Pytorch之parameters的使用
Dec 31 Python
python实现UDP协议下的文件传输
Mar 20 Python
在Python中实现字典反转案例
Dec 05 Python
详解python解压压缩包的五种方法
Jul 05 #Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 #Python
python中的colorlog库使用详解
Jul 05 #Python
Python+selenium点击网页上指定坐标的实例
Jul 05 #Python
用Python实现将一张图片分成9宫格的示例
Jul 05 #Python
python获取txt文件词向量过程详解
Jul 05 #Python
Python 的字典(Dict)是如何存储的
Jul 05 #Python
You might like
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
node.js中的events.emitter.removeListener方法使用说明
2014/12/10 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python使用thrift教程的方法示例
2019/03/21 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
python中操作文件的模块的方法总结
2021/02/04 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
毕业生求职推荐信
2013/11/04 职场文书
球队口号
2014/06/18 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
运动会通讯稿100字
2015/07/20 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL