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任务调度实例分析
May 19 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
python删除某个目录文件夹的方法
May 26 Python
Python代码中如何读取键盘录入的值
May 27 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
浅谈pytorch中的dropout的概率p
May 27 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 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
第十三节 对象串行化 [13]
2006/10/09 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
javascript获取元素的计算样式
2019/05/24 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
Python函数调用追踪实现代码
2020/11/27 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
个人查摆剖析材料
2014/02/04 职场文书
消防宣传口号
2014/06/16 职场文书
树转促学习心得体会
2014/09/10 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
六年级小学生评语
2014/12/26 职场文书
罗马假日观后感
2015/06/08 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers