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中解析XML数据的方法
Oct 15 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
Python检测网络延迟的代码
May 15 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
Python中的全局变量如何理解
Jun 04 Python
python的help函数如何使用
Jun 11 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
你需要学会的8个Python列表技巧
Jun 24 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
python绘制箱型图
Apr 27 Python
opencv检测动态物体的实现
Jul 21 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
JavaScript 基本概念
2015/01/20 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
Python使用multiprocessing创建进程的方法
2015/06/04 Python
Python卸载模块的方法汇总
2016/06/07 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
婚礼主持词
2014/03/13 职场文书
大学生作弊检讨书
2014/09/11 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
2014年人事部工作总结
2014/12/03 职场文书
罚站检讨书
2015/01/29 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
Pytorch 实现变量类型转换
2021/05/17 Python