Storefile от искры на окнах до HDFS - PullRequest
0 голосов
/ 16 сентября 2018

Я установил Hadoop / YARN в виртуальной машине Linux на моей локальной машине Windows.На той же машине Windows (не в ВМ) я установил Spark.При запуске spark на windows я могу читать файлы, хранящиеся в HDFS (в linux VM).

val lines = sc.textFile("hdfs://MyIP:9000/Data/sample.txt")

При сохранении файла с использованием HDFS saveAsTextFile("hdfs://MyIP:9000/Data/Output") я получаю ошибку ниже:

org.apache.hadoop.security.AccessControlException: в доступе отказано: user = LocalWindowsUser, доступ = WRITE, inode = "/ Data": hadoop: супергруппа: drwxr-xr-x.

Я думаю, это потому, что пользователи Windows и Linux разные, а пользователь Windows не имеет прав на запись файлов в linux.

Как правильно хранить файлы из windows в HDFS (linux VM) с помощью spark

1 Ответ

0 голосов
/ 17 сентября 2018

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

Каталог /Data имеет разрешения rwxr-xr-x. Это переводит в режим 755. Ваше имя пользователя LocalWindowsUser, которое имеет права на чтение и выполнение.

Возможные решения:

Соус 1: Поскольку это локальная система под вашим полным контролем, измените разрешения, чтобы разрешить всем доступ. Выполните эту команду, находясь внутри виртуальной машины как пользователь hadoop:

hdfs dfs -chmod -R 777 /Data

Решение 2: Создайте переменную среды в Windows и задайте имя пользователя:

set HADOOP_USER_NAME=hadoop

Имя пользователя действительно должно быть пользователем hdfs. Попробуйте это также при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...