简介

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. 读懂IL代码就这么简单 ---- IL系列文章

    读懂IL代码就这么简单 (一) 读懂IL代码就这么简单(二) 读懂IL代码就这么简单(三)完结篇 出处:http://www.cnblogs.com/zery/tag/IL%20%E7%B3%BB%E ...

  2. 如何在CentOS系统中安装配置SNMP服务

    CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...

  3. ecmall挂件开发实例二(转)

    下述例子讲述了快速增加挂件的方法,但对系统中的代码未做更改,基本参照image_ad挂件的方法. 第 一步: 了解首页模板结构 首页文 件结构 include hearder.html 包含的头文件, ...

  4. CF 1093E Intersection of Permutations——CDQ分治

    题目:http://codeforces.com/contest/1093/problem/E 只能想到转化成查询一个区间里值在一个范围里的数的个数…… 没有想到这样适合用主席树套树状数组维护.不过据 ...

  5. MOSS 2013研究系列---修改默认Logo

    开发SharePoint2013 的时候,系统里面有一个“SharePoint” 的logo,客户很少不满意,我们的系统不能出现产品的名称,如下图: 咋么修改呢,咨询了广大网友,给出了一个解决方案: ...

  6. Proxool抛出的警告 was active for 365172 milliseconds and has been removed automaticaly

    WARN cetDB:149 - #0005 was active for 365172 milliseconds and has been removed automaticaly. The Thr ...

  7. Java-Runoob:Java Number & Math 类

    ylbtech-Java-Runoob:Java Number & Math 类 1.返回顶部 1. Java Number & Math 类 一般地,当需要使用数字的时候,我们通常使 ...

  8. 第七章 Rolling update

    7.1 实践 apiVersion: apps/v1beta1 kind: Deployment metadata: name: httpd spec: replicas: 3 template: m ...

  9. Mybatis动态构建Sql(无实体类)

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 例如,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询 ...

  10. MariaDB主从异步复制详解

    一 异步复制(Asynchronous replication) 1.MariaDB本身支持单向的.异步的复制.异步复制意味着在把数据从一台机器拷贝到另一台机器时有一个延时,最重要的是这意味着当应用系 ...