Вопрос

Возможно, я ошибаюсь, но все(?) примеры, которые я видел с Apache Hadoop, в качестве входных данных принимают файл, хранящийся в локальной файловой системе (например,org.apache.hadoop.examples.Grep)

Есть ли способ загрузить и сохранить данные в файловой системе Hadoop (HDFS)?Например, я поместил файл с разделителями табуляции с именем «stored.xls» в HDFS, используя hadoop-0.19.1/bin/hadoop dfs -put ~/local.xls stored.xls.Как мне настроить JobConf для его чтения?

Спасибо .

Это было полезно?

Решение

JobConf conf = new JobConf(getConf(), ...);
...
FileInputFormat.setInputPaths(conf, new Path("stored.xls"))
...
JobClient.runJob(conf);
...

setInputPaths сделает это.

Другие советы

Пьер, конфигурация Hadoop по умолчанию предполагает работу в локальном, а не в распределенном режиме.Вероятно, вам нужно просто изменить некоторую конфигурацию в Hadoop-site.xml.Похоже, что вашей файловой системой по умолчанию по-прежнему является localhost, хотя должно быть hdfs://вашадрес:вашпорт.Посмотрите настройку fs.default.name, а также обратитесь к справке по настройке на странице Блог Майкла Нолла Больше подробностей.

FileInputFormat.setInputPaths(conf, new Path("hdfs://имя хоста:порт/пользователь/меня/stored.xls"));

Это подойдет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top