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求众数问题实例
Sep 26 Python
Python中atexit模块的基本使用示例
Jul 08 Python
python中模块的__all__属性详解
Oct 26 Python
python3 发送任意文件邮件的实例
Jan 23 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
python3代码输出嵌套式对象实例详解
Dec 03 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
2014过年倒计时示例
2014/01/31 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
历史系毕业生自荐信
2013/10/28 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
服务之星事迹材料
2014/05/03 职场文书
关于环保的活动方案
2014/08/25 职场文书
会计求职自荐信范文
2015/03/04 职场文书
童年读书笔记
2015/06/26 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
SQL CASE 表达式的具体使用
2022/03/21 SQL Server
教你如何用cmd快速登录服务器
2022/06/10 Servers