Я использую CDH-5.14.2-1.cdh5.14.2.p0.3
.И я попытался добавить некоторую строку в существующий файл в HDFS.
Затем я написал так:
FileSystem fs = FileSystem.get(conf);
String str = "testtest";
FSDataOutputStream out = fs.append(new Path("tmp/tmp_file"));
InputStream in = new ByteArrayInputStream(str.getBytes("utf-8"));
byte[] b = new byte[1024];
int numBytes = 0;
while ((numBytes = in.read(b)) > 0) {
out.write(b, 0, numBytes);
}
Нет ошибок, но в tmp_file
(* ничего не записано)1008 * был пустой файл).Я создаю tmp_file
другой метод, используя fs.create(path)
, поэтому tmp_file
был создан, но приложение не подходит.
Я прочитал несколько сообщений и понял, что свойство dfs.support.append
должнобыть true
.Поэтому я искал Менеджера Cloudera, но не смог найти.Вместо этого я написал conf.set("dfs.support.append", "true")
, но это было бессмысленно.
И я использовал IOUtils.copyBytes(in, out, 4096, true)
и out.writeBytes(String tmp)
, но ничего не было написано.
Я искал и нашел настройки ниже:
Я установил, как этот рис, и Deplor Client Configuration
и перезапустить все службы.Но ничего не изменилось ...
Я ошибся?