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 相关文章推荐
Django接受前端数据的几种方法总结
Nov 04 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
python 基础教程之Map使用方法
Jan 17 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
Python Web编程之WSGI协议简介
Jul 18 Python
Python实现合并excel表格的方法分析
Apr 13 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 Python
Python高阶函数、常用内置函数用法实例分析
Dec 26 Python
基于Python 的语音重采样函数解析
Jul 06 Python
深入浅析Python代码规范性检测
Jul 31 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递归实现无限分类 格式化数组的详解
2013/06/08 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
分享PHP守护进程类
2015/12/30 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
基于zepto.js简单实现上传图片
2016/06/21 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python列表操作使用示例分享
2014/02/21 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
python中wheel的用法整理
2020/06/15 Python
Python实现播放和录制声音的功能
2020/08/12 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
幼儿如何来做好自我评价
2013/11/05 职场文书
信息工程学院毕业生推荐信
2013/11/05 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
入党函调证明材料
2014/12/24 职场文书
推荐信范文大全
2015/03/27 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
毕业设计致谢语
2015/05/14 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP