Hadoop知识点整理

知识点大纲

一、初识Hadoop
1. mapreducer 和rdbms区别
2. 结构化数据,非结构化数据,半结构化数据
3. hadoop发展历程

二、关于MapReducer
1. 新老API对比
2. MapReducer 执行步骤
3. combiner函数
4. shuffle过程

三、HDFS
1. HDFS基本介绍
2. HDFS 设计目的
3. HDFS架构
4. HDFS组件
5. NameNode启动过程
6. 联邦和高可用
7. HDFS 读写流程
8. HDFS 保证完整性
9. 一致性模型
10. block的副本放置策略

四、Hadoop的I/O操作
1. 完整性
2. 压缩
3. 序列化

五、Hadoop YARN
1. yarn的架构
2. yarn job提交流程
3. yarn失败机制
4. yarn调度策略

六、二次排序和join
1. 二次排序
2. join

其他
MapReducer计数器
MapReducer的类型
hadoop 集群的安全性
map数量问题
推测执行


一、初识Hadoop

  1. mapreducer 和rdbms区别
  2. 结构化数据,非结构化数据,半结构化数据
  3. hadoop发展历程

  1. mapreducer和rdbms比较

这里写图片描述

  1. 结构化数据,非结构,半结构化数据

结构化数据:例如数据库表,xml;
半结构化数据:例如电子表格,日志文件等;
非结构化数据:例如纯文本,图像等;

  1. hadoop 发展历程

主要体现在发行版本上
这里写图片描述


hadoop的项目组成:
common,mapreducer,hdfs,yarn

yarn是资源管理,hdfs ha 是高可用解决单点问题,hdfs 联邦是分区管理。

hadoop1和hadoop2的区别是什么?
yarn,hdfs ha,hdfs联邦。


二、关于MapReducer

  1. 新老API对比
  2. MapReducer 执行步骤
  3. combiner函数
  4. shuffle过程

1. 新老API对比

新老API即时hadoop2和hadoop的API区别:
这里写图片描述

2. MapReducer 执行步骤

这里写图片描述

宏观上MapReducer的5个执行步骤:
1). input: 获取输入数据进行分片作为map的输入 ;
2). map:map过程对某种输入格式的一条记录解析成一条或多条记录;
3). shuffle:数据混洗,描述着数据从map task输出到reduce task输入的过程。如果没有reducer环节,也就没有shuffle了;
4). reducer:对系统key的数据进行合并;
5). output: 按照格式输出到指定目录。

3. combiner函数

首先理解为什么存在combiner函数,因为宽带资源宝贵,尽量减少map和reducer之间的数据传输以节省资源

combiner函数可以理解为map端的reducer

但是combiner函数的应用还需要看具体的场景,比如最大值,最小值,单词计数等,是可以的。但是平均数就不能用combiner了。

4. shuffle过程

这里写图片描述

shuffle主要分为map端shuffle和reducer端shuffle两个阶段。

map端shuffle:

1). inputSplit分配给一个Map之后,会产生输出,输出就先放在缓存里面,每个map有一个环形内存缓冲区,用于存储任务的输出,默认大小为100MB。一旦达到阈值0.8(io.sort.spil l.percent),一个后台线程就把 内容溢写到(spill)磁盘中,溢写过程的同时map仍然会继续输出,如果在此期间缓冲区被填满,map就会被阻塞,直至写磁盘过程完成。

2). 写磁盘前,要进行partition、sort和combine等操作。通过分区,将不同分区的数据分开处理,之后对不同分区的数据进行排序,如果有combine,还要对排序后的数据进行combine。等最后记录写完,将全部溢出文件合并为一个分区且排序的文件。在合并的时候,还要做一次combiner

3). 最后,将磁盘中的数据发送给对应reducer中。

reducer端shuffle:

1). reducer首先要知道哪个map执行完了,然后去它那把自己partition分区中的数据拿过来。在处理过程中,也是当内存中数据达到80M,就溢写到本地磁盘,然后merge合并。

2). 在溢写的时候,要sort排序,然后merge合并的时候,是根据key进行分组的。

3). 然后reducer通知map,已经执行完了,可以删除该partition数据了。

4). reducer执行完的结果保存到hdfs上。

注意:
1). partition按key取哈希取模来进行分区,如果是取模是1,那就啥子啊partition1中对应reducer 1。reducer都是编号的,对应的partition也是编号的,所以设置reducer个数,也就是设置map端的partition个数,有几个partition就有几个reducer。

2). combine是reducer逻辑代码,在map端做reducer来减轻传送占用网络压力。

3).关于reducer要知道哪个map执行完了这个问题。旧版是通过jobtracker和tasktracker获取。而新版是ApplicationMaster


三、HDFS

  1. HDFS基本介绍
  2. HDFS 设计目的
  3. HDFS架构
  4. HDFS组件
  5. NameNode启动过程
  6. 联邦和高可用
  7. HDFS 读写流程
  8. HDFS 保证完整性
  9. 一致性模型
  10. block的副本放置策略

1. HDFS基本介绍

a. HDFS是服务于Hadoop的分布式文件系统
b. 块的概念
HDFS也有块的概念,不过是更大的单元,默认是128MB。与单一磁盘上的文件系统相似,HDFS上的文件也被分为以块为大小的分块,作为单独的单元存储。

c. NameNode和DataNode
HDFS集群以Master-Slave模式运行,主要有两类节点:一个NameNode(即Master)和多个DataNode(即Slave)。
NameNode:它管理着文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是NameNode镜像文

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值