꧁ Hadoop 实战训练(一)꧂

Hadoop 简介

Hadoop是Apache旗下的一款开源分布式计算平台,它通过以分布式文件系统HDFS和MapReduce为核心,为用户提供了系统底层细节透明的分布式基础架构。

Hadoop 结构

  • HDFS:它是一个分布式文件系统,以高容错性为设计原则,所以可以设计部署在低廉的硬件上。
HDFS设计目标:
1.检测和快速恢复硬件故障。
2.流式的数据访问。
3.简化一致性模型。
4.通信协议。
  • MapReduce:它是一种编程模型,用于大规模数据集的并行运算。

  • Core/Common:为其他子项目提供支持,主要包括FileSystem、RPC和串行化库。

  • Avro:用于数据序列化系统。

Avro的支持:
1.提供丰富的数据结构类型。
2.快速可压缩的二进制数据格式。
3.存储持久性数据的文件集。
4.远程调用RPC的功能和简单的动态语言集成功能。
  • Chukwa:是开源的数据收集系统,用于监控和分析大型分布式系统的数据。

  • Hive:建立在Hadoop基础上的数据仓库,提供了一些用于数据整理、特殊查询和分析存储在Hadoop文件中的数据集的工具。

  • HBase:是一个分布式的、面向列的开源数据库。

  • Pig:是一个对大型数据集进行分析和评估的平台。

Hadoop核心之HDFS

HDFS采用了主从结构模型(Master/Slave),一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据,由NameNode统一调度。

꧁ Hadoop 实战训练(一)꧂_第1张图片
  • 文件写入
1.Client向NameNode发起文件写入请求。
2.NameNode根据文件大小和文件块的配置情况,返回给Client它所管理的DataNode的信息。
3.Client将文件划分为多个Block,根据DataNode的地址信息,按顺序将其写入每一个DataNode中。
  • 文件读取
1.Client向NameNode发起读取文件的请求。
2.NameNode返回文件存储的DataNode信息。
3.Client读取文件信息。
  • 文件块复制
1.NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效。
2.通知DataNode相互复制Block。
3.DataNode开始直接相互复制Block。

Hadoop核心之MapReduce

MapReduce是一种并行编程模式,由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控他们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

꧁ Hadoop 实战训练(一)꧂_第2张图片
MapReduce数据流图.jepg

基本原理

1. 数据分布存储 (HDFS)
2. 分布式并行计算 (JobTracker & TaskTracker)
3. 本地计算 
4. 任务粒度 (默认 block 64MB)
5. 数据分割 (Partition)
6. 数据合并 (Combine)
7. Reduce 
8. 任务管道 

你可能感兴趣的:(꧁ Hadoop 实战训练(一)꧂)