hadoop(详细见word)

HDFS

框架和使用场景

分布式文件系统。一次写入,多次读取;容量可线性扩展,存储高可靠。

运行机制

读数据流程(见word文档)

写数据流程(见word文档)

NN工作机制(见word文档)

  1.响应客户端响应 2.维护目录树 3.管理元数据

异常处理

RPC机制(网络通信)

Mapreduece

框架和使用场景

API使用

运行机制

shuffle机制:map和reduce中间的数据调度机制,包含缓存,分区,排序。

reduce task数量决定机制

业务逻辑需要(有些场景只能有一个,比如统计某一个单词出现的次数

数据量大小  job.setnumberReduceTsks(n)

如果重写了分区,就必须使任务数大于等于分区数。

map task数量决定

完全取决于数据量的大小  

split

默认的切片机制:

 

Textinputformat.getsplit(“path”)做切片规划

 

1.      定义切片大小,可以通过参数调节,但是默认情况等于hdfs中的设置的blocksize

 

2.      获取数据目录下所有待处理文件list

 

3.      遍历文件list,逐个文件进行切片

 

For(file:list)

 

file0偏移量开始切,每128M构成一个切片

 

比如a.txt200M),就会切成 a.txt0-128Ma.txt128M-256M

 

b.txt 切成1b.txt 0-80M

 

如果要处理的数据是大量的小文件???,使用上述切片机制导致大量的切片,但是每个切片非常小,导致map task进程多,但数据量很小,效率很低。

 

解决:将多个小文件划分为1和切片,自定义inputfoemat子类,重写split

 

Mapreduce自带实现类combinefileinputformat

Yarn

框架和使用场景

 

Resourcemanager 主节点master 只需要1个来工作

 

Nodemanager 从节点 根据集群规模可以有很多个

 

心跳通信?

 

1.      yarn只负责资源的分配,不参与job具体的运行机制

 

2.      mapreduce有一个进程mrappmaster来负责程序的运行流程控制

 

3.      yarn可以为各种应用程序提供资源服务(类似于操作系统平台)

 

4.      可以把各种分布式框架整合到hadoop集群

 

猜你喜欢

转载自www.cnblogs.com/NeverGiveUp0/p/11109093.html