我想在hdfs中创建一个文件并在其中写入数据。我用了这个代码:
Configuration config = new Configuration();
FileSystem fs = FileSystem.get(config);
Path filenamePath = new Path("input.txt");
try {
if (fs.exists(filenamePath)) {
fs.delete(filenamePath, true);
}
FSDataOutputStream fin = fs.create(filenamePath);
fin.writeUTF("hello");
fin.close();
}
它创建文件,但不在其中写入任何内容。我找了很多,但什么也没找到。我有什么问题?我用hdfs写东西需要许可吗?
谢谢。
3条答案
按热度按时间suzh9iv81#
请尝试以下方法。
tjvv9vkg2#
作为@tariq的asnwer的替代方法,您可以在获取文件系统时传递uri
参见示例:https://github.com/mpereira-dev/mapreduce-with-accumulo/blob/master/src/main/java/batch/batchscan2html.java
3j86kqsm3#
要么定义
HADOOP_CONF_DIR
将环境变量添加到hadoop配置文件夹或在代码中添加以下两行:如果您不添加这个,您的客户机将尝试写入本地fs,从而导致权限拒绝异常。