-
架构
- HDFS:数据存储
-NameNode:元数据(索引)
-DataNode:具体的数据
-SeconDaryNameNode:不是NameNode的热备 - Yarn:资源调度
-ResourceManager:所有节点的老大(一个RM管理多个NM)
-NodeManager:单个节点的老大(一个NM管理多个container)
-container:每一个容器都是一个资源的集合(硬盘,内存,cpu,网络)
- ApplicationMaster:单个任务的老大
- 所有的MapReduce的任务都是Container中运行的
- 选择节点的时候原则(就近 - 随机)
- HDFS:数据存储
- MapReduse:计算
- MapTask
- ReduceTask
HDFS数据存储
-
优缺点
- 优点:
- 默认3副本,容灾性强(高容错率)
- 分布式的(适合大数据的离线处理)
- 对机器要求不高,廉价的机器就可以集群
- 缺点:
- 不适合做实时的数据分析,不适合低延时的访问
- 无法对大量的小文件进行处理
- 不支持并发写入
- 优点:
-
HDFS默认几副本?
- 默认3副本
-
一个切片的大小?
- 1.x 64M
- 2.x 128M
-
HDFS读取数据的过程?
- 1.打开文件
- 2.获取数据块的信息
- 3.读取请求
- 4.读取数据(可能在多个节点上读取数据)
- 5.关闭文件
-
HDFS数据块的大小会造成哪些影响
- 寻址:根据NameNode去寻找DataNode(时间)
- 处理:数据传输(时间)
- 默认的原则是寻址时间为处理时间的1%
- 处理时间跟什么有关系?跟硬盘的速率有关系,所以数据块的大小,根据是硬盘的速率来决定的
- 这也是为什么1.x的时候64m,2.x - 128M
- 数据块过大?
- 处理时间过长
- 数据块过小?
- 大量的时候都花在了寻址上
- 大量的时候都花在了寻址上
MapReduce
- MR的shuffle?
- 1.输入数据执行Map任务
- 2.写入缓存
- 3.溢写
- 4.文件归并
- MR的工作流程
- 1.要处理一个文件
- 2.将这个文件切片
- 3.每一片都由一个Map来执行
- 4.Map执行完之后交给Reduce
- 5.Reduce处理完之后输入最终结果