Hadoop大数据通用处理平台

本文详细介绍了Hadoop作为开源大数据处理平台的功能和特点,包括其由HDFS、YARN、MapReduce组成的内部结构,以及高扩展性、低成本、高效率和可靠性等优势。Hadoop适用于日志分析、推荐系统等场景,其生态系统包括Hive、HBase等组件。文章还阐述了HDFS的Block数据块、NameNode、DataNode等概念,以及YARN的ResourceManager、NodeManager和ApplicationMaster的角色。此外,MapReduce的执行流程和与其他计算框架的对比也被提及。
摘要由CSDN通过智能技术生成

Hadoop是一款开源的大数据通用处理平台,其提供了分布式存储和分布式离线计算,适合大规模数据、流式数据(写一次,读多次),不适合低延时的访问、大量的小文件以及频繁修改的文件。

*Hadoop由HDFS、YARN、MapReduce组成。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

Hadoop的特点:

  1. 高扩展(动态扩容):能够存储和处理千兆字节数据(PB),能够动态的增加和卸载节点,提升存储能力(能够达到上千个节点)
  2. 低成本:只需要普通的PC机就能实现,不依赖高端存储设备和服务器。
  3. 高效率:通过在Hadoop集群中分化数据并行处理,使得处理速度非常快。
  4. 可靠性:数据有多份副本,并且在任务失败后能自动重新部署。

Hadoop的使用场景:

  • 日志分析,将数据分片并行计算处理。
  • 基于海量数据的在线应用。
  • 推荐系统,精准营销。
  • 搜索引擎。

Hadoop生态圈:

 

2.内部结构

2.1 HDFS

 

HDFS是分布式文件系统,存储海量的文件,其中HDFS中包含NameNode、DataNode、SecondaryNameNode组件等。

Block数据块

  1. HDFS中基本的存储单元,1.X版本中每个Block默认是64M,2.X版本中每个Block默认是128M。
  2. 一个大文件会被拆分成多个Block进行存储,如果一个文件少于Block的大小,那么其实际占用的空间为文件自身大小。
  3. 每个Block都会在不同的DataNode节点中存在备份(默认备份数是3)

DataNode

  1. 保存具体的Blocks数据。
  2. 负责数据的读写操作和复制操作。
  3. DataNode启动时会向NameNode汇报当前存储的数据块信息。

NameNode

  1. 存储文件的元信息和文件与Block、DataNode的关系,NameNode运行时所有数据都保存在内存中,因此整个HDFS可存储的文件数受限于NameNode的内存大小。
  2. 每个Block在NameNode中都对应一条记录,如果是大量的小文件将会消耗大量内存,因此HDFS适合存储大文件。
  3. NameNode中的数据会定时保存到本地磁盘中(只有元数据),但不保存文件与Block、DataNode的位置信息,这部分数据由DataNode启动时上报和运行时维护。

*NameNode不允许DataNode具有同一个Block的多个副本,所以创建的最大副本数量是当时DataNode的总数。

*DataNode会定期向NameNode发送心跳信息,一旦在一定时间内NameNode没有接收到DataNode发送的心跳则认为其已经宕机,因此不会再给它任何IO请求。

*如果DataNode失效造成副本数量下降并且低于预先设置的阈值或者动态增加副本数量,则NameNode会在合适的时机重新调度DataNode进行复制。

SecondaryNameNode

  1. 定时与NameNode进行同步,合并HDFS中系统镜像,定时替换NameNode中的镜像。

HDFS写入文件的流程

 

  1. HDFS Client向NameNode申请写入文件。
  2. NameNode根据文件大小,返回文件要写入的DataNode列表以及Block id (此时NameNode已存储文件的元信息、文件与DataNode、Block之间的关系)
  3. HDFS Client收到响应后,将文件写入第一个DataNode中,第一个DataNode接收到数据后将其写入本地磁盘,同时把数据传递给第二个DataNode,直到写入备份数个DataNode。
  4. 每个DataNode接收完数据后都会向前一个DataNode返回写入成功的响应,最终第一个DataNode将返回HDFS Client客户端写入成功的响应。
  5. 当HDFS Client接收到整个DataNodes的确认请求后会向NameNode发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值