我正在尝试将文件写入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();

我错过了什么 ?

最佳答案

为了在群集上创建文件后将数据写入文件,我必须添加:

System.setProperty("HADOOP_USER_NAME", "vagrant");

Refrence - Writing files to Hadoop HDFS using Scala

关于java - 使用Java将文件写入HDFS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38097736/

10-10 01:07