HDFS的API对Hadoop文件系统的文件进行写入

 

http://yjhexy.javaeye.com/blog/561720

可以通过FileSystem类的静态get方法来获取HDFS文件系统的实例,FileSystem的实例实现了很多对于文件操作的函数,如上次介绍的open方法,当然,FileSystem也实现了文件写入操作的函数了.我们可以通过调用create方法来在hdfs文件系统中建立一个文件,create方法返回一个FSDataOutputStream的实例,FSDataOutputStream是继承自java.io.DataOutputStream的类,因此,通过FileSystem的create方法返回的FSDataOutputStream的实例就可以进行文件的写操作了.我们来看一个简单的例子:

 

 

 

程序的功能很简单,在hdfs文件系统的根目录中创建一个helloworld文件,然后将”Hello world”字符串写入该文件.

值得一提的是FileSystem还提供了append方法,将程序稍加修改改成如下样子看看什么效果?

 

 

 

run之发现如下错误:

Exception in thread "main" java.lang.UnsupportedOperationException: HDFS does not support append yet

at org.apache.hadoop.hdfs.DistributedFileSystem.append(DistributedFileSystem.java:179)

at org.apache.hadoop.fs.FileSystem.append(FileSystem.java:533)

at HDFSWriteHelloWorld.main(HDFSWriteHelloWorld.java:16)

 

原来HDFS还没有实现append方法.(注:使用的版本是hadoop-0.19.1,没有在最新的hadoop-0.20中测试)

对于HDFS文件系统,目前最主要的应用是结合Hadoop的map-reduce框架对大文件进行处理,更多是数据挖掘和数据分析的应用,因此,HDFS提供了基于key-value的SequenceFile的File-based的文件结构和以及MapFile对文件操作进行优化,相信随着Hadoop以及HDFS的完善,HDFS文件系统会提供更多更方便的文件操作.

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值