博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark2.2.0 分布式离线搭建
阅读量:5984 次
发布时间:2019-06-20

本文共 4403 字,大约阅读时间需要 14 分钟。

1、简介

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、安装包准备

  • spark-2.2.0-bin-hadoop2.6.tgz
  • jdk-8u161-linux-x64.tar.gz
  • scala-2.11.0.tgz

2.2、节点配置信息

SK1
2.3、节点资源配置信息
SK2
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目录下,结果如图所示:

SK3

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#开启eventLogspark.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为:

risen01risen02risen03

3.4、分发其他节点

  1. 执行scp命令:

操作节点:risen01

操作用户:root

scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen02:/usr/localscp -r /usr/local/scala-2.11.0 root@risen02:/usr/localscp -r /usr/local/jdk1.8.0_161 root@risen02:/usr/localscp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen03:/usr/localscp -r /usr/local/scala-2.11.0 root@risen03:/usr/localscp -r /usr/local/jdk1.8.0_161 root@risen03:/usr/local
  1. 需要提前创建好bigdata用户并实现免密(这里不再赘述,此步骤如果做过可不做)
  2. 权限修改

操作节点: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

结果如图下所示:

SK4
3.5、启动集群

操作节点:risen01,risen02

操作用户:bigdata

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

SK5

然后在进入到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,并测试统计词频的测试,结果如下图所示:

SK6

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

推荐阅读:

文章来源:

转载地址:http://kkgox.baihongyu.com/

你可能感兴趣的文章
Mac OS 使用Communicator 方法
查看>>
五个开发中简单快捷的小工具网址
查看>>
我的友情链接
查看>>
自建个人原创站运维网咖社(www.net-add.com)
查看>>
我的友情链接
查看>>
heartbeat实现Mysql主主高可用
查看>>
2015年9月28
查看>>
java线程池
查看>>
Spring与SpringMVC整合时产生的两个上下文容器之间的关系
查看>>
阿里云ECS的一次简单试用
查看>>
软件加密授权工具比较
查看>>
基于CentOS 7的owncloud部署
查看>>
基于Cadence Virtuoso 设计平台的单片射频收发集成电路的设计过程
查看>>
桌面支持--电脑桌面图标全选怎么解除.png
查看>>
TCP/IP 协议
查看>>
删除cm-5.13.2目录报错
查看>>
公钥,私钥关系
查看>>
C++语言中的预编译指令记录
查看>>
JAVA 线程数量如何设置
查看>>
分布式缓存架构设计
查看>>