YARN架构
一: 1 RM(ResourceManager) + N NM (NodeManager)
ResourceManager的职责:一个集群active状态的RM只有一个, 负责整个集群的资源管理和调度1)处理客户端的请求(启动/杀死)
2)启动/监控ApplicationMaster(一个作业对应一个AM)
3)监控NM
4)系统的资源分配和调度
二: NodeManager:整个集群中有N个,负责单个节点的资源管理和使用以及task的运行情况
1)定期向RM汇报本节点的资源使用请求和各个Container的运行状态
2)接收并处理RM的container启停的各种命令
3)单个节点的资源管理和任务管理
三: ApplicationMaster:每个应用/作业对应一个,负责应用程序的管理1)数据切分
2)为应用程序向RM申请资源( container),并分配给内部任务3)与NM通信以启停task, task是运行在container中的
- task的 监控和容错
四: Container:
对任务运行情况的描述: cpu、 memory、 环境变量
YARN执行流程
1)用户向YARN提交作业
-
RM为该作业分配第一个container(AM)
-
RM会与对应的NM通信,要求NM在这个container.上启动应用程序的AM4) AM首 先向RM注册,然后AM将为各个任务申请资源,并监控运行情况5) AM采用轮训的方式通过RPC协议向RM申请和领取资源
-
AM申请到资源以后,便和相应的NM通信,要求NM启动任务
7)NM启动我们作业对应的task
Hive 的概念
通常用于进行离线数据处理(采用MapReduce )
底层支持多种不同的执行引|擎
支持多种不同的压缩格式、存储格式以及自定义函数
Hive底层的执行引擎有:
MapReduce、Tez、SparkHive on MapReduce
Hive onTez
Hive on Spark
压缩: GZIP. LZ0. Snappy BZIP2 .
存储: TextFile. SequenceFile RCFile. ORC. Parquet
UDF:自定义函数
Hive的优点
简单、容易上手(提供了类似SQL查询语言HQL)
为超大数据集设计的计算/存储扩展能力(MR计算, HDFS存储)
统一的元数据管理(可与Presto/Impala/SparkSQL等共享数据)
Spark生态圈的概述
http://spark.apache.org/ 官网首页描述对spark的概述
speed
Ease of Use
Generality
Runs Everywhere
MapReduce的局限性:
1)代码繁琐;
2)只能够支持map和reduce方法;3)执行效率低下;
4)不适合迭代多次、交互式、流式的处理;
框架多样化:
1)批处理(离线) : MapReduce、Hive、 Pig2)流式处理(实时) : Storm、 JStorm
3)交互式计算: Impala
spark 对比hadoop生态系统 : BDAS
BDAS
BDAS
Spark对比hadoop
hadoop 对比 Spark BDAS
spark对比Hadoop : MapReduce对比Spark
源码搭建Spark
两种方式的编译
mvn
看看官网
编译中的坑
./dev/make-distribution.sh
--name custom-spark --pip --r
--tgz -Psparkr -Phadoop-2.7
-Phive -Phive-thriftserver
-Pmesos -Pyarn -Pkubernetes
-
注意内存
-
注意maven库
-
编译scala的版本
-X 看最详细的编译信息
-U强制忽略maven库报错
编译出来的tag包拿出来
local模式
解压包 到bin目录ls 看一下
OK可以直接使用了
启动一下
./bin/spark-shell --master local[2]
自己支持的集群
Spark Standalone
sbin一般放的是服务相关的 bin一般是客户端相关的
spark-env.sh
需要设置Standalone 这个
Spark Standalone 模式的架构和hadoop和yarn的模式基本一样的
需要设置master_host
core
memory
实例等
slave 一个master 可以对应 多个worker