Hadoop基础知识小结
Hadoop基础知识小结
从大三暑假开始接触了大数据的工具和框架,但是这些工具一直是使用得云里雾里,原因是不了解背后机制。
所以最近学了一波大数据的相关知识和流行框架Hadoop的工作原理。
慕课网入门课程推荐:
大数据定义:
是一门概念也是一门技术,以Hadoop为代表的各种数据分析技术。
包括实时数据处理、离线数据处理;数据分析、数据挖掘和用机器算法
进行预测分析等技术。
时下代表大数据框架:Hadoop、Spark
大数据应用场景:
- 数据分析
- 日志分析
- 商业决策
Hadoop两大核心:
- HDFS分布式文件系统(存储是大数据技术的基础)
- MapReduce编程模型(分布式计算是大数据应用的解决方案)
HDFS概念:
- 数据块:基本存储单元,文件处理的逻辑单元,默认64M,2.0以后为128M,备份×3
- NameNode:管理节点,存放文件元数据;文件与数据块的映射表;数据块与数据节点(DataNode)的映射表。
- DataNode:存储并且检索数据块,定期向NameNode发送心跳,更新metadata。
- SecondaryNameNode:定期同步元数据映像文件和修改日志,NameNode发生故障时,备胎转正。
HDFS体系结构:
HDFS读取文件流程:
HDFS写入文件流程:
MapReduce原理:
分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)。
MapReduce运行流程:
- Job & Task
- JobTracker
- TaskTracker
一个Job被拆分为多个Task。
JobTracker角色:
- 作业调度。
- 分配任务、监控任务执行进度。
- 监控TaskTracker状态。
TaskTracker角色
- 执行任务。
- 回报任务状态。
MapReduce执行过程:
Hadoop2.0以后,去除了JobTracker和TaskTracker,使用Yarn进行统一资源管理和分配,有关Yarn的知识,今后将进行继续学习和总结
MapReduce容错:
- 重复执行(最多4次)
- 推测执行
HDFS优点:
- 适合大文件存储,TB、PB级别数据,副本策略。
- 可以构建在廉价机器上,硬件冗余,容易扩展、容错、恢复机制。
- 支持流式数据访问,一次写入,多次读取。
- 适合数据批量读写,吞吐量高。
HDFS缺点:
- 不适合大量小文件存储
- 不适合并发写入,不支持文件随机修改
- 不支持随机读等低延迟访问方式