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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
Python计算三维矢量幅度的方法
Jun 15 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
对python:print打印时加u的含义详解
Dec 15 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 Python
Python读取stdin方法实例
May 24 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
keras多显卡训练方式
Jun 10 Python
python如何支持并发方法详解
Jul 25 Python
PyTorch中permute的使用方法
Apr 26 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
PHPAnalysis中文分词类详解
2014/06/13 PHP
使用PHP编写发红包程序
2015/07/22 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
另一个javascript小测验(代码集合)
2011/07/27 Javascript
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
vue axios用法教程详解
2017/07/23 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python Socket使用实例
2017/12/18 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
小学教师节活动方案
2014/01/31 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
大学生就业意向书范文
2014/04/01 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
资产运营委托书范本
2014/10/16 职场文书
项目经理岗位职责
2015/01/31 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis