Новичок для Флинка.
Я могу запустить пример wordcount.jar в файле, присутствующем в удаленном hdfs-кластере, без объявления переменной fs.hdfs.hadoopconf в flink conf.Назначение fs.hdfs.hadoopconf в flink-conf.yaml
Так задается вопросом, что именно является целью вышеупомянутой переменной.
Означает ли это, что он меняет способ выполнения примера jar?
Команда:
flink-cluster.vm ~]$ /opt/flink/bin/flink run /opt/flink/examples/batch/WordCount.jar --input hdfs://hadoop-master:9000/tmp/test-events
Выход:
.......
07/13/2016 00:50:13 Job execution switched to status FINISHED.
(foo,1)
.....
(bar,1)
(one,1)
Установка:
- Удаленный HDFS кластер на HDFS: //hadoop-master.vm: 9000
- Flink кластера при работе на flink-cluster.vm
Благодаря
Update:
Как отметил Сергей, заявило fs.hdfs.hadoopconf в конфе, но на выполнение задания с обновленным аргументом hdfs:///tmp/test-events.1468374669125
получили следующую ошибку
Flink-конф .yaml
# You can also directly specify the paths to hdfs-default.xml and hdfs-site.xml
# via keys 'fs.hdfs.hdfsdefault' and 'fs.hdfs.hdfssite'.
#
fs.hdfs.hadoopconf: hdfs://hadoop-master:9000/
fs.hdfs.hdfsdefault : hdfs://hadoop-master:9000/
Команда:
flink-cluster.vm ~]$ /opt/flink/bin/flink run /opt/flink/examples/batch/WordCount.jar --input hdfs:///tmp/test-events
Выход:
Caused by: org.apache.flink.runtime.JobException: Creating the input splits caused an error: The given HDFS file URI (hdfs:///tmp/test-events.1468374669125) did not describe the HDFS NameNode. The attempt to use a default HDFS configuration, as specified in the 'fs.hdfs.hdfsdefault' or 'fs.hdfs.hdfssite' config parameter failed due to the following problem: Either no default file system was registered, or the provided configuration contains no valid authority component (fs.default.name or fs.defaultFS) describing the (hdfs namenode) host and port.
at org.apache.flink.runtime.executiongraph.ExecutionJobVertex.<init>(ExecutionJobVertex.java:172)
at org.apache.flink.runtime.executiongraph.ExecutionGraph.attachJobGraph(ExecutionGraph.java:679)
at org.apache.flink.runtime.jobmanager.JobManager.org$apache$flink$runtime$jobmanager$JobManager$$submitJob(JobManager.scala:1026)
... 19 more
Спасибо за быстрый ответ, даже я думал о тех же строках, но объявление переменной и использование обновленного аргумента командной строки вызывает ошибку. Проверьте исходный вопрос в обновленном разделе. Спасибо – coredump
@coredump fs.hdfs.hadoopconf должен указывать на каталог, содержащий конфигурацию hadoop (core-site.xml и hdfs-site.xml), а не на URL-адрес namenode :). Узел, выполняющий задание, должен иметь указанные файлы где-то, иначе он не имеет информации о конечных точках удаленного кластера. – Serhiy
Ahh, что имеет смысл, поскольку я выполняю задания на автономном flink-кластере с автономным кластером HDFS (No Yarn). Таким образом, значение переменной должно быть '/ opt/hadoop/etc/hadoop /'. Любая идея, где именно должно быть объявлено? Я не вижу никакого места в каталоге flink conf. Еще раз спасибо. – coredump