Hadoop基础知识小结


从大三暑假开始接触了大数据的工具和框架,但是这些工具一直是使用得云里雾里,原因是不了解背后机制。
所以最近学了一波大数据的相关知识和流行框架Hadoop的工作原理。

大数据定义:

是一门概念也是一门技术,以Hadoop为代表的各种数据分析技术。
包括实时数据处理、离线数据处理;数据分析、数据挖掘和用机器算法
进行预测分析等技术。

时下代表大数据框架:Hadoop、Spark

大数据应用场景:

  • 数据分析
  • 日志分析
  • 商业决策

Hadoop两大核心:

  • HDFS分布式文件系统(存储是大数据技术的基础)
  • MapReduce编程模型(分布式计算是大数据应用的解决方案)

HDFS概念:

  • 数据块:基本存储单元,文件处理的逻辑单元,默认64M,2.0以后为128M,备份×3
  • NameNode:管理节点,存放文件元数据;文件与数据块的映射表;数据块与数据节点(DataNode)的映射表。
  • DataNode:存储并且检索数据块,定期向NameNode发送心跳,更新metadata。
  • SecondaryNameNode:定期同步元数据映像文件和修改日志,NameNode发生故障时,备胎转正。

HDFS体系结构:

Hadoop大数据资料网盘 hadoop大数据基础_大数据

HDFS读取文件流程:

Hadoop大数据资料网盘 hadoop大数据基础_HDFS_02

HDFS写入文件流程:

Hadoop大数据资料网盘 hadoop大数据基础_Hadoop_03

MapReduce原理:

分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)。

Hadoop大数据资料网盘 hadoop大数据基础_hadoop_04

MapReduce运行流程:

  • Job & Task
  • JobTracker
  • TaskTracker

一个Job被拆分为多个Task。

Hadoop大数据资料网盘 hadoop大数据基础_hadoop_05

JobTracker角色:

  • 作业调度。
  • 分配任务、监控任务执行进度。
  • 监控TaskTracker状态。

TaskTracker角色

  • 执行任务。
  • 回报任务状态。

MapReduce执行过程:

Hadoop大数据资料网盘 hadoop大数据基础_Hadoop_06

Hadoop2.0以后,去除了JobTracker和TaskTracker,使用Yarn进行统一资源管理和分配,有关Yarn的知识,今后将进行继续学习和总结

MapReduce容错:

  • 重复执行(最多4次)
  • 推测执行

HDFS优点:

  • 适合大文件存储,TB、PB级别数据,副本策略。
  • 可以构建在廉价机器上,硬件冗余,容易扩展、容错、恢复机制。
  • 支持流式数据访问,一次写入,多次读取。
  • 适合数据批量读写,吞吐量高。

HDFS缺点:

  • 不适合大量小文件存储
  • 不适合并发写入,不支持文件随机修改
  • 不支持随机读等低延迟访问方式