Spark2.2.0 分布式离线搭建


声明:本文转载自https://my.oschina.net/blogByRzc/blog/1800450,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

1、Spark简介

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

2、部署准备

2.1、安装包准备

2.2、节点配置信息

IP地址 主机名
192.168.23.1 risen01
192.168.23.2 risen02
192.168.23.3 risen03

 

2.3、节点资源配置信息

IP地址

角色

192.168.23.1

master,worker

192.168.23.2

HA-Master,worker

192.168.23.3

worker

 

3、集群配置与启动

3.1、安装包上传与解压

操作节点:risen01

操作用户:root

1. 上传安装包spark-2.2.0-bin-hadoop2.6.tgz,scala-2.11.0.tgz,jdk-8u161-linux-x64.tar.gz(如果已经存在则不需要此步骤)到 risen01节点下的~/packages目录下,结果如图所示:

2. 解压JDK安装包,Spark安装包Scala安装包和到/usr/local下

操作节点:risen01

操作用户:root

解压JDK命令:

tar -zxvf ~/packeages/jdk-8u161-linux-x64.tar.gz -C /usr/local

解压spark命令:

tar -zxvf ~/packages/spark-2.2.0-bin-hadoop2.6.tgz -C /usr/local

解压Scala命令:

tar -zxvf ~/packages/scala-2.11.0.tgz -C /usr/local

3.2、启动前准备

操作节点:risen01,risen02,risen03

操作用户:root

1. 在/data目录下新建立spark/work目录用来存放spark的任务处理日志

2. 在/log目录下新建立spark目录用来存放spark的启动日志等

3.3、修改配置文件

3.3.1、编辑spark-env.sh文件

操作节点:risen01

操作用户:root

说明:请根据实际集群的规模和硬件条件来配置每一项参数

进入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目录下执行命令:

cp spark-env.sh.template spark-env.sh

编辑spark-env.sh文件,添加以下内容:

#设置spark的web访问端口 SPARK_MASTER_WEBUI_PORT=18080  #设置spark的任务处理日志存放目录 SPARK_WORKER_DIR=/data/spark/work  #设置spark每个worker上面的核数 SPARK_WORKER_CORES=2  #设置spark每个worker的内存 SPARK_WORKER_MEMORY=1g  #设置spark的启动日志等目录 SPARK_LOG_DIR=/log/spark  #指定spark需要的JDK目录 export JAVA_HOME=/usr/local/jdk1.8.0_161  #指定spark需要的Scala目录 export SCALA_HOME=/usr/local/scala-2.11.0  #指定Hadoop的安装目录 export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop  #指定Hadoop的配置目录 export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop/  #实现spark-standlone HA(因为我们HA实现的是risen01和risen02之间的切换不涉及risen03,所以这段配置risen03可有可无) export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=risen01:2181,risen02:2181,risen03:2181 -Dspark.deploy.zookeeper.dir=/data/spark"

3.3.2、 编辑spark-defaults.conf文件

操作节点:risen01

操作用户:root

说明:请根据实际集群的规模和硬件条件来配置每一项参数

进入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目录下执行命令:

cp spark-defaults.conf.template spark-defaults.conf

编辑spark-defaults.conf文件,添加以下内容:

#设置spark的主节点 spark.master                      spark://risen01:7077  #开启eventLog spark.eventLog.enabled            true  #设置eventLog存储目录 spark.eventLog.dir                /log/spark/eventLog  #设置spark序列化方式 spark.serializer    org.apache.spark.serializer.KryoSerializer  #设置spark的driver内存 spark.driver.memory               1g  #设置spark的心跳检测时间间隔 spark.executor.heartbeatInterval  20s  #默认并行数 spark.default.parallelism         20  #最大网络延时 spark.network.timeout             3000s

3.3.3、 编辑slaves文件

操作节点:risen01

操作用户:root

说明:请根据实际集群的规模和硬件条件来配置每一项参数

进入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目录下执行命令:

cp slaves.templete slaves

编辑slaves文件,修改localhost为:

risen01 risen02 risen03

3.4、分发其他节点

1. 执行scp命令:

操作节点:risen01

操作用户:root

scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen02:/usr/local scp -r /usr/local/scala-2.11.0 root@risen02:/usr/local scp -r /usr/local/jdk1.8.0_161 root@risen02:/usr/local scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen03:/usr/local scp -r /usr/local/scala-2.11.0 root@risen03:/usr/local scp -r /usr/local/jdk1.8.0_161 root@risen03:/usr/local

2. 需要提前创建好bigdata用户并实现免密(这里不再赘述,此步骤如果做过可不做)

3. 权限修改

操作节点:risen01,risen02,risen03

操作用户:root

修改/log/spark权限命令:

chown -R bigdata.bigdata /log/spark

修改/data/spark权限命令:

chown -R bigdata.bigdata /data/spark

修改spark的安装目录命令:

chown -R bigdata.bigdata /usr/local/spark-2.2.0-bin-hadoop2.6

修改Scala的安装目录命令:

chown -R bigdata.bigdata /usr/local/scala-2.11.0

修改JDK1.8的安装目录命令:(此步骤如果做过可不做)

chown -R bigdata.bigdata /usr/local/jdk1.8.0_161

结果如图下所示:

3.5、启动集群

操作节点:risen01,risen02

操作用户:bigdata

(1) 进入到/usr/local/spark-2.2.0-bin-hadoop2.6/sbin目录下执行./start-all.sh,查看web界面如下图所示:

然后在进入到risen02机器的spark安装目录下/usr/local/spark-2.2.0-bin-hadoop2.6/sbin执行命令./start-master.sh启动spark集群的备用主节点。(记得一定要启动备用主节点的进程,这里我们只用risen02做备用主节点,risen03虽然也配置了有资格,但是暂时我们不需要)

(2) 进入到/usr/local/spark-2.2.0-bin-hadoop2.6/bin目录下执行spark-shell,并测试统计词频的测试,结果如下图所示:

截止到此,spark-standlone模式便安装成功了!

本文发表于2018年04月24日 22:38
(c)注:本文转载自https://my.oschina.net/blogByRzc/blog/1800450,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1832 讨论 0 喜欢 1

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1