`
Mootools
  • 浏览: 44889 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

解析HDFS读文件

 
阅读更多

下图描述了在文件读过程中,client、NameNode和DataNode三者之间是如何互动的。

 

\">

 

1.  client调用get方法得到HDFS文件系统的一个实例(DistributedFileSystem)。然后调用它的open方法。

 

2.  DistributedFileSystem通过RPC远程调用NameNode决定文件文件的block的位置信息。对于每一个 bolck,NameNode返回block所在的DataNode(包括副本)的地址。DistributedFileSystem返回 FSDataInputStream给client用来读数据。FSDataInputStream封装了DFSInputStream用于管理 NameNode和DataNode的IO。

 

3.  client调用FSDataInputStream的read方法。

 

4.  DFSInputStream保存了block块所在的DataNode的地址信息。DFSInputStream连接第一个block的DataNode,read block数据,传回给client。

 

5.  当第一个block读完,DFSInputStream关掉与这个DataNode的连接。然后开始第二个block。

 

6.  当client读结束,调用FSDataInputStream的close方法。

 

在读的过程中,如果client和一个datanode通讯时出错,他会连接副本所在的datanode。这种client直接连接 datanode读取数据的设计方法使HDFS可以同时相应很多client的同时并发。因为数据流量均匀的分布在所有的datanode 上,NameNode只负责block的位置信息请求。

 

原文:http://www.hadoop.so/hadoop/2012/0808/14.html

 

0
3
分享到:
评论

相关推荐

    python解析hdfs文件和实现方式

    python解析hdfs文件内容生成本地文件、及相关插件包安装实现方式

    SparkSQL HDFS JAVA调用完整实例

    SparkSQL HDFS JAVA调用完整实例,使用Maven管理,项目很小,里面实例很多。敬请下载。

    python读取hdfs上的parquet文件方式

    在使用python做大数据和机器学习处理过程中,首先需要读取hdfs数据,对于常用格式数据一般比较容易读取,parquet略微特殊。从hdfs上使用python获取parquet格式数据的方法...5、读取文件 ##namenode mode: from hdfs3

    读取HDFS序列化文件解析key、value可视化输出

    ReadAndWritePatterns是读取序列文件,并解析其key和value,然后可视化输出,所谓可视化输出是指不是乱码的输出,具体可以参考http://blog.csdn.net/fansy1990中《hadoop解析序列文件并可视化输出》

    HDFS资料整理.pdf

    对hadoop HDFS的分析,描述,HDFS文件的访问,读写等。HDFS读文件解析,HDFS写文件解析,HDFS文件创建流程,HDFS文件数据流写入传输协议

    高可用性的HDFS:Hadoop分布式文件系统深度实践

    第2章 HDFS元数据解析 2.1 概述 2.2 内存元数据结构 2.2.1 INode 2.2.2 Block 2.2.3 BlockInfo和DatanodeDescriptor 2.2.4 小结 2.2.5 代码分析——元数据结构 2.3 磁盘元数据文件 2.4 Format情景分析 2.5 元数据...

    HDFS详解②

    文章目录HDFS4 HDFS的数据流4.1 HDFS写数据流程4.1.1 剖析文件写入4.1.2 网络拓扑-节点距离计算4.1.3 机架感知(副本存储节点选择)4.2 HDFS读数据流程5 NameNode和SecondaryNameNode(面试开发重点)5.1 NN和2NN...

    Pyspark读取parquet数据过程解析

    parquet数据:列式存储结构,由Twitter和Cloudera合作开发,相比于行式存储,其特点是: ...首先,导入库文件和配置环境: import os from pyspark import SparkContext, SparkConf from pyspark.sql.session

    kafka-hadoop-loader-my:kafka0.8.2使用简单的消费者负载消息使用自定义mapreduce进入hdfs

    此外,它不使用高级使用者,而是直接与zookeeper通信以管理消耗的偏移量,消耗的偏移量在每个地图任务结束时提交,也就是说,当输出文件已从hdfs_temp移至其最终目的地时。 实际使用者及其内部提取程序线程都包装...

    hive-exec-2.1.1.jar

    Hive 提供了一种 SQL 接口来访问数据,这些数据通常存储在 Hadoop 的分布式文件系统(HDFS)中。 Hive 的主要组件包括: Hive Metastore:存储元数据(如表的模式、分区信息等)。 HiveServer2:提供客户端连接和 ...

    【SparkCore篇07】RDD数据读取和保存1

    (1)数据读取 (2)数据保存 (1)导入解析json所需的包 (3)读取文件 (4)解析json数据 (5)打印 (1)创建一个RDD (2)将RDD保存为S

    大数据与人工智能-fy.docx

    支持数据切块,目的是提升文件的读取效率 C.数据切块后默认大小为256M(正确答案) D.有副本机制 答案解析:为128M 12. Yarn是从Hadoop的哪个版本出现的 [单选题] A.1.0 B.2.0(正确答案) C.3.0 D.4.0 大数据与人工智能...

    Hadoop中MapReduce基本案例及代码(五)

    读取输入文件内容,解析成key,value对。对输入文件的每一行,解析成key,value对。每一个键值对调用一次map函数。 写自己的逻辑,对输入的key,value处理,转换成新的key,value输出。 对输出的key,value进行分区。 对...

    spark-ais-multi:使用 SparkSQL 导入、分区和查询 AIS 数据

    临时导入过程在另一个容器中执行,该容器从映射到主机文件系统的卷中读取数据。 记录根据其数据/时间字段进行解析和分区,并使用多输出写入器写入 HDFS。 最后, 用于使用 Hive Server 2 节俭协议通过查询和呈现...

    jgit-spark-connector:jgit-spark-connector是一个用于运行可伸缩数据检索管道的库,该管道可处理任意数量的Git存储库以进行源代码分析

    jgit-spark-connector jgit-spark-connector是一个库,用于运行可伸缩的数据检索管道,该管道可处理任意数量...将每个文件解析为UAST 用于在JVM中读取Siva文件 扩展DataFrame API 用于处理Git .pack文件 不推荐使用

    Apache_NiFi:Apache NiFi的代码,项目和参考

    这是NiFi流程: 1.)读取data.json文件2.)使用ExecuteScript处理器解析json并执行任意python处理。 3.)将属性写入json 4.)从这里,结果可以保存到简单的.json文件,HDFS,发送到Kafka,Solr等。 参考:

    HSRA:用于RNA序列数据的Hadoop拼接读取对齐器-开源

    HSRA是基于MapReduce的并行工具,... 此外,我们的工具使用Hadoop序列解析器(HSP)库(上面的链接)来有效读取Hadoop分布式文件系统(HDFS)上存储的输入数据集,从而能够处理使用Gzip和BZip2编解码器压缩的数据集。

    asu-cse512:ASU CSE 512 课程项目

    它目前包含用于从字符串解析点对象以及从 HDFS 读取和写入的代码。 它还包含实现 CLI 的主要功能。 要向此 CLI 添加另一个函数,您只需在主函数末尾的 if/else 块中添加另一个 case,并检查该命令是否是您正在执行...

    Fourinone分布式并行计算四合一框架

     2、对集群文件的解析支持(包括按行,按分割符,按最后标识读取)  3、对整形数据的高性能读写支持(ArrayInt比ArrayList存的更多更快)  4、两阶段提交和事务补偿处理  5、自带一个集群文件浏览器,可以查看...

Global site tag (gtag.js) - Google Analytics