spark-2.2.0安装和部署——Spark集群学习日记
前言
在安装后hadoop之后,接下来需要安装的就是Spark。
scala-2.11.7下载与安装
具体步骤参见上一篇博文
Spark下载
为了方便,我直接是进入到了/usr/local文件夹下面进行下载spark-2.2.0
wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz
Spark安装之前的准备
文件的解压与改名
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz
rm -rf spark-2.2.0-bin-hadoop2.7.tgz
为了我后面方便配置spark
,在这里我把文件夹的名字给改了
mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0
配置环境变量
vi /etc/profile
在最尾巴加入
export SPARK_HOME=/usr/local/spark-2.2.0
export PATH=$PATH:$SPARK_HOME/bin
配置Spark环境
打开spark-2.2.0
文件夹
cd spark-2.2.0
此处需要配置的文件为两个
spark-env.sh
和slaves
首先我们把缓存的文件spark-env.sh.template
改为spark
识别的文件spark-env.sh
cp conf/spark-env.sh.template conf /spark-env.sh
修改spark-env.sh
文件
vi conf/spark-env.sh
在最尾巴加入
export JAVA_HOME=/usr/java/jdk1.8.0_141
export SCALA_HOME=/usr/scala-2.11.7
export HADOOP_HOME=/usr/local/hadoop-2.7.2
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.2/etc/hadoop
export SPARK_MASTER_IP=SparkMaster
export SPARK_WORKER_MEMORY=4g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
变量说明
- JAVA_HOME:Java安装目录
- SCALA_HOME:Scala安装目录
- HADOOP_HOME:hadoop安装目录
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录
- SPARK_MASTER_IP:spark集群的Master节点的ip地址
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目
修改slaves
文件
vi conf/slaves
在最后面修成为
SparkWorker1
SparkWorker2
同步SparkWorker1
和SparkWorker2
的配置
在此我们使用rsync
命令
rsync -av /usr/local/spark-2.2.0/ SparkWorker1:/usr/local/spark-2.2.0/
rsync -av /usr/local/spark-2.2.0/ SparkWorker2:/usr/local/spark-2.2.0/
启动Spark
集群
因为我们只需要使用
hadoop
的HDFS
文件系统,所以我们并不用把hadoop
全部功能都启动。
启动hadoop
的HDFS
文件系统
start-dfs.sh
但是在此会遇到一个情况,就是使用
start-dfs.sh
,启动之后,在SparkMaster
已经启动了namenode
,但在SparkWorker1
和SparkWorker2
都没有启动了datanode
,这里的原因是:datanode
的clusterID
和namenode
的clusterID
不匹配。是因为SparkMaster
多次使用了hadoop namenode -format
格式化了。
解决的办法:
在SparkMaster
使用
cat /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION
查看clusterID
,并将其复制。
在SparkWorker1
和SparkWorker2
上使用
vi /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION
将里面的clusterID
,更改成为SparkMaster
VERSION里面的clusterID
做了以上两步之后,便可重新使用start-dfs.sh
开启HDFS文件系统。
启动之后使用jps
命令可以查看到SparkMaster
已经启动了namenode
,SparkWorker1
和SparkWorker2
都启动了datanode
,说明hadoop
的HDFS
文件系统已经启动了。
启动Spark
因为
hadoop/sbin
以及spark/sbin
均配置到了系统的环境中,它们同一个文件夹下存在同样的start-all.sh
文件。最好是打开spark-2.2.0
,在文件夹下面打开该文件。
./sbin/start-all.sh
成功打开之后使用jps
在SparkMaster
、parkWorker1
和SparkWorker2
节点上分别可以看到新开启的Master
和Worker
进程。
成功打开Spark
集群之后可以进入Spark
的WebUI
界面,可以通过
SparkMaster_IP:8080
访问,可见有两个正在运行的Worker节点。
打开Spark-shell
使用
spark-shell
便可打开Spark
的shell
同时,因为shell
在运行,我们也可以通过
SparkMaster_IP:4040
访问WebUI
查看当前执行的任务。
结言
到此我们的Spark集群就搭建完毕了。搭建spark集群原来知识网络是挺庞大的,涉及到Linux基本操作,设计到ssh,设计到hadoop、Scala以及真正的Spark。在此也遇到不少问题,通过翻阅书籍以及查看别人的blog得到了解决。在此感谢分享知识的人。
参见 王家林/王雁军/王家虎的《Spark 核心源码分析与开发实战》
文章出自kwongtai'blog,转载请标明出处!
spark-2.2.0安装和部署——Spark集群学习日记的更多相关文章
- 安装Scala-2.11.7——集群学习日记
前言 在安装Spark之前,我们需要安装Scala语言的支持.在此我选择的是scala-2.11.7版本. scala-2.11.7下载 为了方便,我现在我的SparkMaster主机上先安装,把目录 ...
- 在Docker中安装和部署MongoDB集群
此文已由作者袁欢授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Docker中安装mongodb 采用的mongodb镜像:https://registry.hub.doc ...
- websphere8 从安装到部署 测试集群应用程序 安装j2ee程序(非常详细)
目录1. 准备安装文件2. 安装Installation Manager3. 为Installation Manager指定安装资源库4. 创建部署管理器概要文件5. 创建定制概要文件并联合到部署管理 ...
- zookeeper的安装与部署-伪集群
1.Zookeeper的下载与解压 通过后面的链接下载Zookeeper: Zookeeper下载在此我们下载zookeeper-3.4.5下载后解压至安装目录下,本文我们解压到目录:/ ...
- kafka系列一、kafka安装及部署、集群搭建
一.环境准备 操作系统:Cent OS 7 Kafka版本:kafka_2.10 Kafka官网下载:请点击 JDK版本:1.8.0_171 zookeeper-3.4.10 二.kafka安装配置 ...
- Hbase的安装与部署(集群版)
HBase 部署与使用 部署 Zookeeper 正常部署 $ ~/modules/zookeeper-3.4.5/bin/zkServer.sh start 首先保证 Zookeeper 集群的正常 ...
- 二十八. Ceph概述 部署Ceph集群 Ceph块存储
client :192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13 1.实验环境 准备四台KVM虚 ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
随机推荐
- Publishing failed with multiple errors.问题解决
问题:Publishing failed with multiple errors.(发布失败与多个错误) 原因:项目工程文件删除,但eclipse里面仍显示存在. 解决方案:刷新项目工程,重新部署, ...
- Linux_Ununtu 16.04 的下载安装并部署.Net Core 网站
第一次接触Linux也难免有些懵逼,因为公司项目必须用.Net Core 开发一个后端服务应用:第一次用Linux给我的感觉就像在用2000年的手机一样:没用智能的操作:让人崩溃的用户体验.说多了都是 ...
- 通过数据,修改金蝶ERP的收料通知单不合格和合格数量,修改生产投料单,委外发出数量
update POInStockEntry set FAuxNotPassQty=不合格数量 where FInterID=(select FInterID from POInStock where ...
- 【Windows 10 应用开发】使用快捷访问键
UWP 虽然主要面向触控操作,但 Windows 设备是万能工具,不用手指不用笔的时候,也可能会接上键盘耍耍.因此,给应用界面上的一些元素弄个快捷访问键也挺不错的.为了使用 Windows 上的各类应 ...
- 从netty源码里拿到的关于http错误码,自己学习下
public static HttpResponseStatus valueOf(int code) { switch (code) { case 100: return CONTINUE; case ...
- ssh无密码登录远程主机
方法:在客户端生成公/私钥对,将私钥文件保存在客户端,再将公钥文件上传到服务器端(远程主机) 1.在客户端生成公/私钥对 cb@cb251#ssh-keygen...cb@cb251#ls .ssh/ ...
- 格式化输出和printf命令
GNU版本的printf命令用来格式化输出,效果类似与C语言的printf函数.2.x以上版本的Bash内建的printf命令和e/usr/bin下的printf命令使用方法一样. 例子:$print ...
- 原生javascript实现网页显示日期时钟效果
刚接触javascript中Date内置对象时,以为这些方法都太简单了,结果要自己实际操作写一个时钟效果还真一时把我难住了,主要有几点大家要注意的.先看实际效果 要实现这样的效果 某年某月某日星期几几 ...
- [编织消息框架][netty源码分析]6 ChannelPipeline 实现类DefaultChannelPipeline职责与实现
ChannelPipeline 负责channel数据进出处理,如数据编解码等.采用拦截思想设计,经过A handler处理后接着交给next handler ChannelPipeline 并不是直 ...
- oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了
众所周知,静态SQL的输出结构必须也是静态的.对于经典的行转列问题,如果行数不定导致输出的列数不定,标准的答案就是使用动态SQL, 到11G里面则有XML结果的PIVOT. 但是 oracle 10G ...