数据中台数据中台
申请试用
新闻动态
了解袋鼠云最新动态
新闻动态>「数据API」hadoop如何写入数据API?>
「数据API」hadoop如何写入数据API?
2020518|文章来源:-

hadoop如何写入数据API?针对一般文档,都是有考虑任意读写能力的api。而hadoop中的读api非常简单用FSDataInputStream类就可以考虑一般规定,而hadoop中的写实际操作确是和一般java实际操作不一样。

hadoop如何写入数据API?hadoop针对写实际操作出示了一个类:FSDataOutputStream,这一类轻载了许多write方式,用以载入许多种类的数据信息:例如字节数数组,long,int,char这些。像FSDataInputStream一样,要得到FSDataOutputStream的案例,务必根据FileSystem此类来和HDFS创建联接,随后根据相对路径回到FSDataOutputStream案例。FileSystem回到FSDataOutputStream案例的方式有2组:

create(Pathp)涵数,建立一个空文档,随后能够 向该文件次序载入

append(Pathp)涵数,开启一个现有文档,并最做文档结尾增加数据信息

之上2组涵数都是有好几个轻载版本号,能够 查看指南。FSDataOutputStream不允许在文档中精准定位(而FSDataInputStream能够 ),这是由于hadoop只容许在一个已打开文件次序载入或在文档尾增加数据信息,不允许在末尾以外其他文件载入数据信息。

在应用append的实际操作时将会回到出现异常dfs.support.append未设定为true,要是才hdfs-site.xml中把该特性设定为true

dfs.support.append

false

DoesHDFSallowappendstofiles?

Thisiscurrentlysettofalsebecausetherearebugsinthe

“appendcode”andisnotsupportedinanyprodctioncluster.

并且0.20的早上版本号也不兼容append实际操作,官方网文本文档的提议是假如增加数据信息就再次create一个文档。应用的情况下应当慎重一点。

当读取文件时若要回到文档的尺寸,用以下编码:

FileStatusstatus=hdfs.getFileStatus(p);

returnstatus.getLen();

hadoop如何写入数据API?可是当对文档载入时,FileStatus的getLen涵数回到的并不是当今的尺寸,由于FSDataInputStream在载入数据信息时,数据信息会缓存文件,只能当载入的数据信息满64M(块尺寸)时或是关掉文档时,才会把数据信息载入到文档中去。持续载入数据信息时,以便即时获得当今图片大小,假如持续关掉打开文件必定会危害高效率。能够 那样处理:

此刻起,和袋鼠云一起让数据产生更大价值
此刻起,和袋鼠云一起让数据产生更大价值