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三元运算符实现方法
Dec 17 Python
python自动化测试之连接几组测试包实例
Sep 28 Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
flask session组件的使用示例
Dec 25 Python
Python变量类型知识点总结
Feb 18 Python
python3使用matplotlib绘制散点图
Mar 19 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 Python
Python Charles抓包配置实现流程图解
Sep 29 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中英混合字符串截取函数代码
2011/07/17 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
使用js实现雪花飘落效果
2013/08/26 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
python字典的常用方法总结
2019/07/31 Python
Python shutil模块用法实例分析
2019/10/02 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
pytorch进行上采样的种类实例
2020/02/18 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
任课老师推荐信范文
2013/11/24 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
网站创业计划书
2014/04/30 职场文书
鸟的天堂导游词
2015/01/31 职场文书
幼师大班个人总结
2015/02/13 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js