花小花学习Hadoop
敲黑板!基础+重点知识
感谢黑马程序员,来自花小花全方位自学网课,本人无死角整理的知识点,通俗易懂,拿起小本本记起来~
Hadoop的高深定义及组成
Hadoop:允许使用简单的编程模型在大量计算机集群上对大量数据集进行分布式处理,主要分为:
- MapReduce(分布式运算编程框架):通常进行数据的处理
- YARN (集群的资源管理):进行任务调度
- HDFS(分布式文件系统):Hadoop File System海量数据的存储
HDFS(分布式文件系统)
何所谓分布式?通俗的来讲,就是把文件分隔成更小的block块并行上传到不同的机器上,即横向扩展。Master/slave架构,即一个主子管理多个随从NameNode:主节点管理名字
DataNode:从节点数据存储
SecondaryNameNode:秘书负责节点的备份
1.Namenode元数据管理:
元数据:目录结构及每个文件对应的block块的位置信息。保存在内存(RAM)中,一旦断电就丢失,所以创建了文件系统的镜像。主节点Namenode不会持久存储信息,需要每个随从DataNode定期汇报自己的情况。
2.Datanode数据存储:
各个Block的具体存储管理由datanode节点承担,每个block都可以在多个datanode上,某个DataNode关闭时,不会影响数据的可用性。DataNode启动时且定时需要(默认3秒发送心跳)向大哥汇报自己持有的block信息(块列表)
MapReduce(分而治之)
MapReduce处理的数据类型**<key, value>键值对**:
Map拆分阶段:分解并行处理,任务间没有依赖关系,举个栗子如单词统计<hello,1><hello,1>
Reduce汇总阶段:全局汇总,<hello,[1,1]> 最后按key 和value把结果写到文本中,即hello 2
Combiner(局部合并):combiner也是一种聚合组件,父类是reducer,它的应用不能影响业务逻辑(比如取中位数等,跟全局求中位数会不同)
花小花最喜欢的一句话也分享给大家!Success is not final, failure is not fatal, it is the courage to continue that counts!