Hadoop文件读取的示例分析

这篇文章主要为大家展示了“Hadoop文件读取的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Hadoop文件读取的示例分析”这篇文章吧。

创新互联拥有十载成都网站建设工作经验,为各大企业提供网站制作、网站建设服务,对于网页设计、PC网站建设(电脑版网站建设)、成都App制作、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、域名注册等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。

Hadoop文件读取的示例分析

                客户端通过调用FileSystem对象的open()方法来打开希望读取的文件,对于HDFS来说,这个对象是分布式系统(步骤1)的一个实例。DistributedFileSystem通过使用RPC来调用namenode,以确定文件起始块的位置(步骤2),对于每一个块,namenode返回存有该块复本的datanode地址,此外,这些datanode(比如,在一个MapReduce任务中),并保存有相应数据库的一个复本时,该节点将本地datanode中读取数据。DistributedFileSystem累返回一个FSDataInputStream对象(一个支持文件定位的输入流)给客户端并读取数据。FSDataInputStream类转而封装DFSInputStream对象,该对象管理着datanode和namenode的I/O,接着,客户端对这个输入流调用read()方法(步骤3)。存储着文件起始块的datanode地址的DFSInputStream随机连接距离最近的datanode。通过对数据流反复调用read()方法,可以将数据从datanode传输到客户端(步骤4).到达块的末端时,DFSInputStream会关闭与该datanode的连接,然后需找下一个块的最近datanode(步骤5)。客户端只需要读取连续的流,并且操作对于客户端都是透明的。客户端从流中读取数据时,块是按照打开DFSInputStream与datanode新建连接的顺序读取的,它也需要询问namenode来检索下一批所需快的datanode的位置,一旦客户端完成读取,就对FSDataInputStream调用close()方法(步骤6)。在读取数据的时候,如果DFSInputStream在与datanode通信时遇到错误,它便会尝试从这个快的另外一个最领近datanode读取数据。它也会机主那个故障datanode,以保证以后不会反复读取该节点上后续的块。DFSInputStream也会通过校验和确认从datanode发来的数据是否完整。如果发现一个损坏的块,它就会在DFSInputStream视图从其他datanode读取一个块的复本之前通知namenode。这个设计的一个重点是:namenode告知客户端每个块中最近的datanode,并让客户端直接联系该datanode且检索锁具。由于数据流分散在该集群中的所有datanode,所以这种设计能使HDFS可扩展到大量的并发客户端。同时,namenode仅需要相应块位置的请求(这些信息存储在内存中,因而非常高效),而无需相应数据请求,否则随着客户端数据的增长,namenode很快会变为一个瓶颈。

以上是“Hadoop文件读取的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

新闻标题:Hadoop文件读取的示例分析
本文网址:https://www.cdcxhl.com/article38/pecgpp.html

成都网站建设公司_创新互联,为您提供服务器托管小程序开发品牌网站设计网站建设网站制作网站导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营