Hadoop学习
HDFS概念
数据块
数据块是抽象块而非整个文件作为存储单元
默认大小为64MB,一般设置为128M,备份X3
NameNode
管理文件系统的命名空间,存放文件元数据
维护着文件系统的所有文件和目录,文件与数据块的映射
记录每个文件中各个块所在数据节点的信息
DataNode
存储并检索数据块
想NameNode更新所存储的列表
HDFS优点
适合大文件存储,支持TB、PB级的数据存储,并有副本策略
可以构建在廉价的机器上,并有一定的容错和恢复机制
支持流式数据访问,一次写入,多次读取最高效
HDFS缺点
不适合大量小文件存储
不适合并发写入,不支持文件随机修改
不支持随机读等低延时的访问方式
HDFS写流程
客户端想NameNode发起写数据请求
分块写入DataNode节点,DataNode自动完成副本备份
DataNode想NameNode汇报存储完成,NameNode通知客户端
HDFS读流程
客户端想NameNode发起读数据请求
NameNode找出距离最近的DataNode节点信息
客户端从DataNode分块下载文件
YARN概念
ResourceManager
分配和调度资源
启动并监控ApplicationMaster
监控NodeManager
ApplicationMaster
为MR类型的程序申请资源并分配给内部任务
负责数据的切分
监控任务的执行及容错
NodeManager
管理单个节点的资源
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令
MapReduce编程模型
输入一个大文件,通过Split之后,将其分为多个分片
每个文件分片由单独的机器去处理,这就是Map方法
将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法