大数据之Hadoop流存储

通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。

      HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。

      Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。

      HDFS 内部的所有通信都基于标准的 TCP/IP 协议。

      实际的 I/O事务并没有经过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode。

  Hadoop 的MapReduce 却是一个高度抽象的并行编程模型,它将分布式并行编程抽象为两个原语操作,即map 操作和reduce 操作

 map函数:接受一个键值对(key-value pair),产生一组中间键值对。MapReduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。

  reduce函数:接受一个键,以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。

NameNode的metadata信息在启动后会加载到内存中

文件包括:

① fsimage (文件系统镜像):元数据镜像文件。存储某一时段NameNode内存元数据信息。

② edits: 操作日志文件。默认大于64M强制检查

③ fstime: 保存最近一次checkpoint的时间

block是hdfs读写数据的基本单位。


客户端通过调用FileSystem对象的open()方法来打开希望读取的文件,对于HDFS来说,这个对象时分布文件系统的一个实例;

DistributedFileSystem通过使用RPC来调用NameNode以确定文件起始块的位置,同一Block按照重复数会返回多个位置,这些位置按照Hadoop集群拓扑结构排序,距离客户端近的排在前面;

前两步会返回一个FSDataInputStream对象,该对象会被封装成DFSInputStream对象,DFSInputStream可以方便的管理datanode和namenode数据流,客户端对这个输入流调用read()方法;

存储着文件起始块的DataNode地址的DFSInputStream随即连接距离最近的DataNode,通过对数据流反复调用read()方法,可以将数据从DataNode传输到客户端;

到达块的末端时,DFSInputStream会关闭与该DataNode的连接,然后寻找下一个块的最佳DataNode,这些操作对客户端来说是透明的,客户端的角度看来只是读一个持续不断的流;

一旦客户端完成读取,就对FSDataInputStream调用close()方法关闭文件读取。


加工/计算层(MapReduce)是一种并行编程模型,以及

存储层(Hadoop分布式文件系统),hdfs

Hadoop通用:这是Java库和其他Hadoop组件所需的实用工具。(通用工具)

Hadoop YARN :这是作业调度和集群资源管理的框架。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 7,553评论 0 34
  • 遁入尘世的清心 无不夹杂肉身的磨难 理想国的火炬 亮化你黑暗的游神 祈祷在离开的最后时刻 忘记说再见 苦苦的游历 ...
    e31dd9a5e269阅读 167评论 0 0
  • 如果将时间看成一条线,占卜就是提前知道线可能会经过哪里。 而想学占卜的话首先就要学会观察。 ...
    言饰非阅读 1,039评论 0 0
  • 10月7日,怀着忐忑的心情来到医院复查,最担心照着B超时,医生告诉我,你的胚胎依旧没有胎心胎压,停止发育,建议稽留...
    Kerry说阅读 306评论 0 1
  • 今天是农历七月十五,我的三十岁生日! 转眼间就三十了,一路走来真的不容易。祝我生日快乐,宝宝快快长大! ...
    L玲哒阅读 218评论 0 0

友情链接更多精彩内容