简介

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介绍及集群搭建的更多相关文章

  1. Spark高可用集群搭建

    Spark高可用集群搭建 node1    node2    node3   1.node1修改spark-env.sh,注释掉hadoop(就不用开启Hadoop集群了),添加如下语句 export ...

  2. spark完全分布式集群搭建

    最近学习Spark,因此想把相关内容记录下来,方便他人参考,也方便自己回忆吧 spark开发环境的介绍资料很多,大同小异,很多不能一次配置成功,我以自己的实际操作过程为准,详细记录下来. 1.基本运行 ...

  3. spark教程(一)-集群搭建

    spark 简介 建议先阅读我的博客 大数据基础架构 spark 一个通用的计算引擎,专门为大规模数据处理而设计,与 mapreduce 类似,不同的是,mapreduce 把中间结果 写入 hdfs ...

  4. nginx+apache+php+mysql服务器集群搭建

    由于需要搭建了一个基本的服务器集群.具体的配置方案先不说了,到有时间的时候再介绍.下面介绍下整 个方案的优点. 我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面,B1和B2 ...

  5. [spark]-Spark2.x集群搭建与参数详解

    在前面的Spark发展历程和基本概念中介绍了Spark的一些基本概念,熟悉了这些基本概念对于集群的搭建是很有必要的.我们可以了解到每个参数配置的作用是什么.这里将详细介绍Spark集群搭建以及xml参 ...

  6. Spark —— 高可用集群搭建

    一.集群规划 这里搭建一个3节点的Spark集群,其中三台主机上均部署Worker服务.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002和hadoop00 ...

  7. Hadoop介绍及集群搭建

    简介 Hadoop 是 Apache 旗下的一个用 java 语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理.它的核 ...

  8. 2. zookeeper介绍及集群搭建

    ZooKeeper 概述 Zookeeper 是一个分布式协调服务的开源框架. 主要用来解决分布式集群中 应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题. ZooKeeper 本质上 ...

  9. 物联网微消息队列MQTT介绍-EMQX集群搭建以及与SpringBoot整合

    项目全部代码地址:https://github.com/Tom-shushu/work-study.git (mqtt-emqt 项目) 先看我们最后实现的一个效果 1.手机端向主题 topic111 ...

随机推荐

  1. {Reship}{Emgu}{vs2010}C#配置Emgu

    =============================================================================================This Ar ...

  2. python 打印对象所有属性值

    from pprint import pprint pprint (vars(your_object)) 另外查看所有属性名用.__dict__

  3. .OPF文件剖析

    OPF文档是epub电子书的核心文件,且是一个标准的XML文件,依据OPF规范,主要由五个部分组成: 1.<metadata>,元数据信息,由两个子元素组成: <dc-metadat ...

  4. LG3565 [POI2014]HOT-Hotels

    题意 有一个树形结构,每条边的长度相同,任意两个节点可以相互到达.选3个点.两两距离相等.有多少种方案? 1≤n≤5 000 分析 参照小塘空明的题解. 很明显到一个点距离相等的三个点两两之间距离相等 ...

  5. Træfɪk 服务发现解决方案

    Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It s ...

  6. bzoj 1043 [HAOI2008]下落的圆盘——圆的周长

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1043 算每个圆被它后面的圆盖住了多少圆弧即可.注意判断这个圆完全被后面盖住的情况. #inc ...

  7. MVC涉及RouteTable自定义路径

    Routing 到目前为止,我们已经解决了MVC的很多问题,但忽略了最基本的最重要的一个问题:当用户发送请求时,会发生什么? 最好的答案是“执行Action 方法”,但仍存在疑问:对于一个特定的URL ...

  8. 可以随时查找的max栈和max队列——面试

    这是面试中比较常见的题目,max队列也是编程之美里的一道题 对于max的栈,有个比较简单的办法就是,每次入栈前判断栈顶元素与正在入栈的元素哪个大,哪个大就哪个入栈 对于队列,我们知道可以用两个栈来实现 ...

  9. 黄聪:使用Add-on SDK开发火狐扩展

    2014年3月7号更新:火狐已经关闭Add-on SDK服务啦!我也转用360急速浏览器来开发浏览器插件了. 如果精通JS.HTML.CSS开发的朋友,直接看这个教程估计就能懂了 ---------- ...

  10. FPGA学习的一点总结

    做FPGA主要是要有电路的思想,作为初学者,往往对器件可能不是熟悉,那么应该要对数字电路的知识熟悉. FPGA中是由触发器和查找表以及互联线等基本结构组成的,其实在逻辑代码里面能够看到的就是与非门以及 ...