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 mysqldb连接数据库
Mar 16 Python
Python闭包实现计数器的方法
May 05 Python
深入浅析Python字符编码
Nov 12 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
在pycharm中显示python画的图方法
Aug 31 Python
Python timeit模块的使用实践
Jan 13 Python
Python 实现将某一列设置为str类型
Jul 14 Python
Python 执行矩阵与线性代数运算
Aug 01 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获取本机真实IP地址实例代码
2016/03/31 PHP
微信支付开发订单查询实例
2016/07/12 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
Python中生成器和yield语句的用法详解
2015/04/17 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
python连接mongodb集群方法详解
2020/02/13 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
小学优秀教育工作者事迹材料
2014/05/09 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
学生会自荐信
2019/05/16 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js