Spark2.2.0 分布式离线搭建
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、安装包准备
- spark-2.2.0-bin-hadoop2.6.tgz
- jdk-8u161-linux-x64.tar.gz
- scala-2.11.0.tgz
2.2、节点配置信息
2.3、节点资源配置信息
3、集群配置与启动
3.1、安装包上传与解压
操作节点:risen01
操作用户:root
- 上传安装包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
- 在/data目录下新建立spark/work目录用来存放spark的任务处理日志
- 在/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、分发其他节点
- 执行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
- 需要提前创建好bigdata用户并实现免密(这里不再赘述,此步骤如果做过可不做)
- 权限修改
操作节点: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模式便安装成功了!
推荐阅读:https://www.roncoo.com/course/view/c4e0130ea2354c71a2cb9ba24348746c
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【8.23更新--技术干货全家桶】大数据计算技术共享计划 — MaxCompute技术公开课第二季
2018年5月-6月 MaxCompute 开启大数据计算技术共享计划技术公开课第一季,有超过1500名用户以及大数据爱好者参与到直播学习中来。7月,我们又开启第二季直播,5次大数据技术直播,有近6000名用户、大数据专家、技术牛人、大数据爱好者参与其中。 在前两季的直播中,我们看到了开发者们对大数据的热情和需求,第三季正在火热策划和准备中,请大家摆好姿势,保持期待! 究竟第二季技术共享中有哪些产品和技术干货?错过了第二季直播分享,哪里可以看回放?下资料?来这里,全都有。(往下看吧) 第二季技术干货 1、MaxCompute客户端 - odpscmd操作使用—7月24日 曲宁 阿里巴巴计算平台 产品专家摘要:介绍如何借助客户端命令行工具使用 MaxCompute 服务的基础功能。 分享内容文字稿 直播视频回看 分享资料下载 2、MaxComput
- 下一篇
大数据学习资源最全版本(收藏)
资源列表: 关系数据库管理系统(RDBMS) 框架 分布式编程 分布式文件系统 文件数据模型 Key -Map 数据模型 键-值数据模型 图形数据模型 NewSQL数据库 列式数据库 时间序列数据库 类SQL处理 数据摄取 服务编程 调度 机器学习 基准测试 安全性 系统部署 应用程序 搜索引擎与框架 MySQL的分支和演化 PostgreSQL的分支和演化 Memcached的分支和演化 嵌入式数据库 商业智能 数据可视化 物联网和传感器 文章 论文 视频 有一句话叫做三人行必有我师,其实做为一个开发者,有一个学习的氛围 跟一个交流圈子特别重要这是一个我的大数据交流学习群531629188 不管你是小白还是大牛欢迎入驻,正在求职的也可以加入 ,大家一起交流学习,话糙理不糙,互相学习,共同进步,一起加油吧。 关系数据库管理系统(RDBMS) MySQL:世界最流行的开源数据库; PostgreSQL:世界最先进的开源数据库; Oracle数据库:对象-关系型数据库管理系统。 框架 Apache Hadoop:分布式处理架构,结合了MapReduce(并行处理)、YARN(作业调度)和...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主