`

Hadoop 0.21.0 中的Append/Hflush/Read
说明

    博客分类:
  • HDFS
 
阅读更多
From:https://issues.apache.org/jira/browse/HDFS-265
在Hadoop 0.21.0 中fsync(API中是DFSOutputStream的sync()方法)操作改名为hflush,原因是它的实际语义是刷新(flush)缓存,而不是同步数据到硬盘,fsync功能(Syncable接口中的hsync方法)可能会在以后的版本中添加(参考:https://issues.apache.org/jira/browse/HDFS-744https://issues.apache.org/jira/browse/HADOOP-6313 定义了三种flush)。

read/write 语义不含 append/hflush
1、对于打开的文件的数据,DFS尽力提供持久性(
best
 effort 
durability
,类似ip层的best effort,即不可靠)
  -NameNode持久化文件元数据信息,但是不持久化文件由哪些块组成的信息,重启NameNode可能会导致数据丢失
  -DFS不保证各数据块的副本数和文件的复制因子一致,如果一个数据块没有一个有效副本被写入,则写失败。
2、对于关闭的文件的数据,DFS提供强持久性
  -NameNode持久化文件和数据块元数据信息,重启NameNode不会导致数据丢失。
  -DFS保证各数据块的副本数和文件的复制因子一致。
  -文件关闭不保证数据已经到达磁盘。如果数据未到达磁盘,重启DataNode会导致数据丢失。
3、read
  -对于打开的文件数据,只有已完成块(block写满)的数据对readers是可见的。正在写的块中的数据,对reader来说是不可见的

append(追加写入)
1、只允许一个writer/appender
,这表明一个client只能append一个关闭的文件
2、已关闭的文件打开append时,DFS为旧数据提供强持久性,为新append的数据尽力提供持久性(
best
 effort 
durability
)

hflush(刷新缓存)
1、hflush保证hflush之前写入的数据对于新的reader都是可见的
  -hflush不保证数据同步到磁盘,重启DataNode节点可能造成hflush过的数据丢失
2、对于hflush的数据,DFS只提供弱持久性
  -NameNode持久化hflush的数据所属的block的元数据信息,重启NameNode不会导致hflush了的数据的丢失
  -DFS不保证各数据块的副本数和文件的复制因子一致

read(读入文件)
1、允许存在多个程序并行地读取未关闭的文件
2、hflush的数据,对于新的新的reader都是可见的
3、writer/appender不调用hflush,reader仍可以看到之前写入的数据,但会有延时
4、如果一个字节对一个reader可见,它就是持续可见的,除非读该字节的所有副本数都失败,所有副本读入都失败将会返回一个error
  -这表明一个字节的一个副本对reader可见,那其他副本也可见
  -这对于hflush的和没有hflush的数据都适用

分享到:
评论

相关推荐

    Hadoop-0.21.0分布式集群配置

    Hadoop-0.21.0分布式集群配置.doc

    hadoop 0.21.0 安装包

    hadoop 0.21.0 linux下的安装包

    hadoop安装过程中的问题

    Hadoop/etc/hadoop/slaves 的IP地址要变。 5个重要的配置文件逐个检查,IP地址需要变 2.配置文件确认无错误,看日志: 从logs日志中寻找slave的namenode为什么没有起来。 3.最后发现是hdfs中存在上次的数据,删掉...

    hadoop2.2.0/2.6.0/2.7.0/2.7.1 64位安装包

    hadoop2.2.0/2.6.0/2.7.0/2.7.1 64位安装包。

    大数据云计算技术系列 hadoop单机版搭建图文详解(共14页).pdf

    3、下载hhadoop0.21.0.tar.gz(http://apache.etoak.com//hadoop/core/hadoop-0.21.0/ ) 安装hadoop 1、首先将hadoop0.21.0.tar.gz复制到usr下的local文件夹内,(sudo cp hadoop路径 /usr/local)如图

    hadoop 0.21.0 API chm

    为了方便查询,本人将Hadoop最新版0.21.0的html格式API转化为chm格式的。资料包含三个包的API,并且支持搜索提示与全文检索。希望对各位奋战在Hadoop第一线的朋友们有所帮助

    hadoop/etc/hadoop/6个文件

    hadoop/etc/hadoop/6个文件 core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-env.sh yarn-site.xml

    hadoop-0.21.0-raid.jar

    hadoop-0.21.0-raid.jar

    Hadoop系列-配置/安装/教程.zip

    Hadoop系列--配置/安装/教程/搭建/配置

    hadoop-0.21.0.tar.gz

    Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据...

    64位hadoop-2.6.0 lib/native.tar.gz

    自己在网上下载了一个hadoop-2.6.0-cdh5.15.1版本的hadoop,启动hdfs时报错:WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java ...

    hadoop-core-0.20.2-cdh3u3.jar

    export HADOOP_HOME="/usr/local/hadoop/" export JAVA_HOME="/usr/local/hadoop/jdk1.6.0_24" export CLASSPATH="$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:${HADOOP_HOME}/lib/commons-logging-1.0.4.jar...

    Hadoop配置手册

    假定有 3 台机器,机器上均按照了 Ubuntu 操作系统: 192.168.1.138 hadoop-master //作为 Hadoop 的主机用 192.168.1.140 hadoop-node1 //作为 Hadoop 的数据节点用 192.168.1.141 hadoop-node2 //作为 Hadoop 的...

    第一次云计算实验报告.doc

    3、下载hhadoop0.21.0.tar.gz(http://apache.etoak.com//Hadoop/core/hadoop- 0.21.0/ ) 一、安装hadoop 1、首先将hadoop0.21.0.tar.gz复制到usr下的local文件夹内,(sudo cp hadoop路径 /usr/local)进入到...

    Hadoop 0.21.0 Eclipse plugin相关

    NULL 博文链接:https://srz007.iteye.com/blog/1026772

    hadoop中map/reduce

    hadoop中map/reduce自学资料合集

    Hadoop分布式搭建配置/Hive/HBase

    包括《Hadoop集群监控与Hive高可用-向磊》,hadoop的三本圣经《Hadoop权威指南(第2版)》,《Hadoop实战》和《Hadoop源码分析完整版》。

    hadoop1.1.2 eclipse 插件

    ${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar" todir="${build.dir}/lib" verbose="true"/> ${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/...

    hadoop-0.21.0-eclipse-plugin.jar

    不是hadoop-0.21.0中自带的eclipse插件,是经过我配置后的,可用于eclipse的中进行开发的插件(9.2MB),因为这个版本自带的这个文件(1.5MB)不可用。 将此文件放入:/usr/share/eclipse/dropins 中即可使用!!! 在...

    hadoop-lzo-0.4.20.jar

    cp /opt/hadoopgpl/lib/hadoop-lzo-0.4.20-SNAPSHOT.jar $HADOOP_HOME/share/hadoop/common/ cp /opt/hadoopgpl/lib/hadoop-lzo-0.4.20-SNAPSHOT.jar $HBASE_HOME/lib/ 2.2.6. 拷贝本地库so文件到hadoop tar -cBf - ...

Global site tag (gtag.js) - Google Analytics