Apache Spark介绍及集群搭建
简介
Spark是一个针对于大规模数据处理的统一分析引擎。其处理速度比MapReduce快很多。其特征有:
1、速度快
spark比mapreduce在内存中快100x,比mapreduce在磁盘中快10x
spark比mapreduce快的主要2个原因:
1)spark的job中间结果数据可以保存在内存中,mapreduce的job中间结果数据只能够保存在磁盘。后面又有其他的job需要依赖于前面job的输出结果,对于spark来说,直接可以从内存获取得到,
大大减少磁盘io操作,对于mapreduce来说就需要进行大量磁盘io操作,性能来说肯定是降低了。
2)mapreduce以进程的方式运行在整合yarn中,比如一个job有100个mapTask,这个时候运行100个map task就需要启动100个进程。
spark以线程的方式运行的进程中,运行100个map task可以只启动1个进程,在一个进程中运行100个线程。启动一个进程和启动一个线程时间代价肯定不一样,启动进程需要的时间和调度大大增加。
2、易用性
可以快速写一个Spark应用程序通过 java/scala/python/R/SQL不同的语言去进行代码开发
3、通用性
Spark框架是一个生态系统,有很多不同的模块(sparksql、sparkStreaming、Mlib、Graphx)应用到不同的业务场景中。
4、兼容性
Spark程序就是一个计算任务的程序,哪里可以给当前这个任务提供对应的资源,我们就可以把这个任务提交到哪里去运行。 standAlone
spark自带的集群模式,任务的资源分配由Master负责。 yarn
spark可以把任务提交到yarn中去运行,任务的资源分配由resourceManager负责 mesos
是一个apache开源的类似于yarn的资源管理平台
Spark集群的安装部署
1 新建文件夹,分别用来存放压缩包、解压后的文件
mkdir -p /export/software
mkdir -p /export/servers
2 把安装文件放到服务器上的software文件夹内 然后解压到servers文件夹内
cd /export/software
tar -zxvf spark-2.1.-bin-hadoop2..tgz -C /export/servers/
cd /export/servers
mv spark-2.1.3-bin-hadoop2.7 spark
3 修改配置文件
cd /export/servers/spark/conf
mv spark-env.sh.template spark-env.sh
vim spark-env.sh
#指定java环境变量
export JAVA_HOME=/export/servers/jdk1.8.0_141
#指定spark集群中老大地址
export SPARK_MASTER_HOST=node1
#指定spark集群中老大端口
export SPARK_MASTER_PORT=7077
mv slaves.template slaves
vim slaves #指定哪些节点是worker
node2
node3
4 添加spark的环境变量
vim /etc/profile export SPARK_HOME=/export/servers/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
5 分发spark的安装目录和spark变量
scp -r spark node2:/export/servers
scp -r spark node3:/export/servers scp /etc/profile node2:/etc
scp /etc/profile node3:/etc
6 在所有节点执行脚本
source /etc/profile
启动和关闭Spark集群
在主节点上的spark目录下sbin目录执行
./start-all.sh
./stop-all.sh
7 基于zk构建Spark HA集群
#安装zk集群 #修改配置文件
vim spark-env.sh #需要注释掉手动指定那个节点是master
#指定spark集群中老大地址
#export SPARK_MASTER_HOST=node1 #引入zk相关配置 构建sparkHA
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,n
ode2:2181,node3:2181 -Dspark.deploy.zookeeper.dir=/spark" #分发spark-env.sh 到其他节点
scp spark-env.sh node2:$SPARK_HOME/conf
scp spark-env.sh node3:$SPARK_HOME/conf #启动zk器群
#启动spark集群 #为了保证master的高可用 可以在其他节点单独启动Master
sbin/start-master.sh
Spark集群的管理界面:
master主机名或者ip:8080
Apache Spark介绍及集群搭建的更多相关文章
- Spark高可用集群搭建
Spark高可用集群搭建 node1 node2 node3 1.node1修改spark-env.sh,注释掉hadoop(就不用开启Hadoop集群了),添加如下语句 export ...
- spark完全分布式集群搭建
最近学习Spark,因此想把相关内容记录下来,方便他人参考,也方便自己回忆吧 spark开发环境的介绍资料很多,大同小异,很多不能一次配置成功,我以自己的实际操作过程为准,详细记录下来. 1.基本运行 ...
- spark教程(一)-集群搭建
spark 简介 建议先阅读我的博客 大数据基础架构 spark 一个通用的计算引擎,专门为大规模数据处理而设计,与 mapreduce 类似,不同的是,mapreduce 把中间结果 写入 hdfs ...
- nginx+apache+php+mysql服务器集群搭建
由于需要搭建了一个基本的服务器集群.具体的配置方案先不说了,到有时间的时候再介绍.下面介绍下整 个方案的优点. 我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面,B1和B2 ...
- [spark]-Spark2.x集群搭建与参数详解
在前面的Spark发展历程和基本概念中介绍了Spark的一些基本概念,熟悉了这些基本概念对于集群的搭建是很有必要的.我们可以了解到每个参数配置的作用是什么.这里将详细介绍Spark集群搭建以及xml参 ...
- Spark —— 高可用集群搭建
一.集群规划 这里搭建一个3节点的Spark集群,其中三台主机上均部署Worker服务.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002和hadoop00 ...
- Hadoop介绍及集群搭建
简介 Hadoop 是 Apache 旗下的一个用 java 语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理.它的核 ...
- 2. zookeeper介绍及集群搭建
ZooKeeper 概述 Zookeeper 是一个分布式协调服务的开源框架. 主要用来解决分布式集群中 应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题. ZooKeeper 本质上 ...
- 物联网微消息队列MQTT介绍-EMQX集群搭建以及与SpringBoot整合
项目全部代码地址:https://github.com/Tom-shushu/work-study.git (mqtt-emqt 项目) 先看我们最后实现的一个效果 1.手机端向主题 topic111 ...
随机推荐
- BZOJ4543 [POI2014]Hotel加强版
题意 有一个树形结构,每条边的长度相同,任意两个节点可以相互到达.选3个点.两两距离相等.有多少种方案? 数据范围:n<=100000 分析 参照小蒟蒻yyb的博客. 我们先考虑一个\(O(n^ ...
- matplotlib ----- 清空图片
关闭单个图: fig = plt.figure(0) # 新图 0 plt.savefig() # 保存 plt. close(0) # 关闭图 0 关闭所有图不用管 fig 号码 fig = p ...
- PADS VBA 编写笔记
PADS VBA 编写笔记 由于 PADS 的中编码不是 utf8 的,所以在编写时放到 PADS 中会出现乱码. 有时会使用中文注释,但是当以中文注释结尾时就会出现错误,于是就如果结尾是以英文就没问 ...
- [LeetCode系列]3元素最近和问题的O(n^2)解法
给定一个整数数组(长度不小于3) 和 一个目标值, 从数组中找出3个元素, 使得它们的和与目标值最接近, 返回这个和. 可以认为每个输入的组合都是只有唯一解的. 解法思路参考: Finding thr ...
- laravel Auth token创建于使用
token 的创建和使用, https://laravelacademy.org/post/3640.html 用户表密码字段验证修改,不只是password https://www.jianshu. ...
- (转)Inno Setup入门(一)——最简单的安装脚本
本文转载自:http://blog.csdn.net/Augusdi/article/details/8564788 一个最简单的安装脚本: 1.最简单的安装文件脚本: [setup] AppName ...
- 关于神经网络算法的 Python例程
# Back-Propagation Neural Networks# # Written in Python. See http://www.python.org/# Placed in the ...
- Tomcat的文件列表服务
今天需要将分析后的日志结果发布到网站上供其他人浏览,虽然用户可以通过直接使用url链接可以访问到对应的文件,但是毕竟还是不方便,没有一个类似文件浏览器的东西,可以直接查看文件夹和文件列表. 其实这样的 ...
- i2c驱动程序全面分析,从adapter驱动程序到设备驱动程序
开发板 :mini2440 内核版本:linux2.6.32.2 驱动程序参考:韦东山老师毕业班i2c 内容概括: 1.adapter client 简介 2.adapter 驱动框架 ...
- PHP处理session跨域
同一根域名下子域名之间的跨域 ini_set('session.name', 'sid'); //设置session_id的键名 ini_set('session.use_trans_sid', 0) ...