使用Java将文件写入HDFS

5
我正在尝试将文件写入HDFS,文件已经被创建,但是在集群上它是空的,然而当我在本地运行代码时,它能够正常工作。
这是我的代码:
FSDataOutputStream recOutputWriter = null;
FileSystem fs = null;
try {
    //OutputWriter = new FileWriter(outputFileName,true);
    Configuration configuration = new Configuration();
    fs = FileSystem.get(configuration);
    Path testOutFile = new Path(outputFileName);
    recOutputWriter = fs.create(testOutFile);

    //outputWriter = new FileWriter(outputFileName,true);
} catch (IOException e) {
    e.printStackTrace();
}
recOutputWriter.writeBytes("======================================\n");
recOutputWriter.writeBytes("OK\n");
recOutputWriter.writeBytes("======================================\n");

if (recOutputWriter != null) {
    recOutputWriter.close();
}
fs.close();

我有所不足吗?

刷新数据?https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/fs/FSDataOutputStream.html#hflush%28%29 - Pierre
@Pierre 谢谢您的回复,即使我刷新了数据,文件仍然是空白的! - Jay
@BigDataLearner,outputFileName 可以是类似 /files/out.txt 或者 out.txt 这样的路径。 - Jay
没试过那个..会有什么区别吗?recOutputWriter.write("OK".getBytes());? - Jay
recOutputWriter.write("OK") - http://docs.oracle.com/javase/7/docs/api/java/io/FilterOutputStream.html?is-external=true#write(byte[]) - 还可以参考这个例子 - http://mund-consulting.com/Blog/file-operations-in-hdfs-using-java/ - (注:抱歉,我没有我的集群,所以无法测试并给出确切的答案) - Ronak Patel
显示剩余4条评论
1个回答

1

你好,能打扰你问几个新手问题吗?我不想为这样的问题开一个新的线程。但是,如何实际地写入HDFS呢?是否有一些教程或博客可以跟随?我是绝对的初学者,在屏幕前苦思冥想36个小时后,成功创建了一个集群。谢谢! - usamazf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接