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脚本分享
Apr 21 Python
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
python字符串过滤性能比较5种方法
Jun 22 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
python文本数据相似度的度量
Mar 12 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
pandas通过索引进行排序的示例
Nov 16 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
Python代理IP爬虫的新手使用教程
Sep 05 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python机器学习之底层实现KNN
Jun 20 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 is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
英国著名书店:Foyles
2018/12/01 全球购物
机械专业应届生求职信
2013/12/12 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
HTML常用标签超详细整理
2022/03/19 HTML / CSS