Как скопировать файл из локального каталога в HDFS в работе Ooz ie spark scala? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь скопировать некоторые файлы с локального пути в hdfs с помощью scala и запустить его с помощью ooz ie. Задание не выполняется, так как не удается прочитать файлы по локальному пути. Есть ли способ прочитать локальные файлы в ooz ie?

1 Ответ

0 голосов
/ 31 марта 2020

невозможно копировать / читать локальные файлы с помощью spark, если он работает в режиме кластера. Причина в том, что когда Ooz ie отправляет задание Spark в режиме кластера, необязательно, чтобы YARN выделял тот же узел (локальный узел), что и исполнитель. Предположим, что если у вас ограничено число исполнителей, и он выделяет один и тот же узел, то также невозможно получить доступ к одному и тому же файлу всеми другими исполнителями.

Тогда единственное возможное решение, которое я вижу, - это сохранить все локальные файлы в общем ресурсе. каталог, который будет доступен для всех узлов кластера, после этого вы можете использовать приведенные ниже команды для запуска команды hdfs, используя scala.

import org.apache.hadoop.fs
import org.apache.hadoop.fs._
val conf = new Configuration()

val fs = path.getFileSystem(conf)

val hdfspath = new Path("hdfs:///user/nikhil/test.csv")
val localpath = new Path("file:///home/cloudera/test/")

fs.copyToLocalFile(hdfspath,localpath)

Пожалуйста, найдите ссылку ниже, чтобы получить помощь в создании ресурса справочник только для справки.

https://www.tecmint.com/how-to-setup-nfs-server-in-linux/

...