当前位置:   article > 正文

Hadoop大数据通用处理平台_开源的hadoop大数据处理平台

开源的hadoop大数据处理平台

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接收完数据后都会向前一
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/559968
推荐阅读
相关标签
  

闽ICP备14008679号