Как добавить файл в HDFS в программе MapReduce - PullRequest
0 голосов
/ 28 мая 2018

Я использую 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), но ничего не было написано.

Я искал и нашел настройки ниже: setting

Я установил, как этот рис, и Deplor Client Configuration и перезапустить все службы.Но ничего не изменилось ...

Я ошибся?

...