Подтвердить что ты не робот

Корневой файл dir:/tmp/hive на HDFS должен быть доступен для записи. Текущие разрешения: rw-rw-rw- (в Windows)

Я запускаю Spark в Windows 7. Когда я использую Hive, я вижу следующую ошибку

The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw- 

Разрешения устанавливаются следующим образом

C:\tmp>ls -la
total 20
drwxr-xr-x    1 ADMIN Administ        0 Dec 10 13:06 .
drwxr-xr-x    1 ADMIN Administ    28672 Dec 10 09:53 ..
drwxr-xr-x    2 ADMIN Administ        0 Dec 10 12:22 hive

Я установил "полный контроль" для всех пользователей из Windows- > properties- > security- > Advanced.

Но я все еще вижу ту же ошибку. Любая помощь, пожалуйста? Я проверил множество ссылок, некоторые говорят, что это ошибка на Spark 1.5. Это правда?

Спасибо Aarthi

4b9b3361

Ответ 1

Прежде всего, убедитесь, что вы используете правильный Winutils для своей ОС. Затем следующий шаг - разрешения.
В окнах вам нужно запустить следующую команду на cmd:

D:\winutils\bin\winutils.exe chmod 777 D:\tmp\hive

Надеюсь, что вы загрузили winutils уже n, установив HADOOP_HOME.

Ответ 2

Прежде всего проверьте свой компьютерный домен. Попробуйте

c:\work\hadoop-2.2\bin\winutils.exe ls c:/tmp/hive

Если эта команда говорит об отказе в доступе или ошибке FindFileOwnerAndPermission (1789): не удалось установить доверительные отношения между этой рабочей станцией и основным доменом.

Это означает, что ваш компьютерный контроллер домена недоступен, возможно, причина в том, что вы не на том же VPN, что и ваш системный контроллер домена. Подключите к VPN и повторите попытку.

Теперь попробуйте решение, предоставленное Виктором или Нишу.

Ответ 3

Следующее решение работало на Windows для меня:

  • Сначала я определил HADOOP_HOME. Он подробно описан здесь
  • Далее, мне понравилось Nishu Tayal, но с одним отличием: C:\temp\hadoop\bin\winutils.exe chmod 777 \tmp\hive

\tmp\hive не является локальным каталогом

Ответ 4

Вам нужно установить разрешения для этого каталога на HDFS, а не на вашу локальную файловую систему. /tmp не означает C:\tmp, если вы не установите fs.defaultFs в файле core-site.xml на file://c:/, что, вероятно, является плохим.

Проверьте его, используя

hdfs dfs -ls /tmp 

Установите его, используя

hdfs dfs -chmod 777 /tmp/hive

Ответ 5

Ошибка при запуске искровой оболочки на виртуальной машине, запущенной в Windows: Ошибка msg: Корневой файл dir:/tmp/hive на HDFS должен быть доступен для записи. Разрешение отклонено

Решение: /tmp/hive является временным каталогом. В этом файле хранятся только временные файлы. место нахождения. Нет проблем, даже если мы удалим этот каталог, будет создан, когда требуется с соответствующими разрешениями.

Шаг 1) В hdfs удалите каталог /tmp/hive == > "hdfs dfs -rm -r/tmp/hive"

2) На уровне ОС также удалите dir/tmp/hive == > rm -rf/tmp/hive

После этого запустила искровую оболочку, и она отлично работала.

Ответ 6

В Spark Jira есть ошибка для того же. Это было разрешено несколько дней назад. Вот ссылка.

https://issues.apache.org/jira/browse/SPARK-10528

Комментарии имеют все варианты, но не гарантированное решение.

Ответ 7

Проблема решена в искровой версии 2.0.2 (14 ноября 2016 г.). Используйте эту версию. Версия 2.1.0 28 декабря 2016 выпуска имеет те же проблемы.

Ответ 8

Основная причина заключается в том, что вы начали искру в неправильном каталоге. создайте папки в D://tmp/hive (дайте полные разрешения) и начните свою искру в D: drive D: > искровая оболочка

теперь это сработает..:)

Ответ 9

Я тоже сталкивался с этой проблемой. Эта проблема связана с сетью. Я установил спарк на Windows 7, используя определенный домен.

Доменное имя можно проверить

Пуск → компьютер → Правый клик → Свойства → Имя компьютера, настройки домена и рабочей группы → нажмите на изменение → Имя компьютера (вкладка) → Нажмите Изменить → Имя домена.

Когда я запускаю команду spark-shell, она работает нормально, без каких-либо ошибок.

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

Ответ 10

Это простой 4-х шаговый процесс:

Для Spark 2. 0+:

  1. Загрузить Hadoop для Windows/Winutils
  2. Добавьте это в свой код (до инициализации SparkSession):

    if(getOS()=="windows"){
        System.setProperty("hadoop.home.dir", "C:/Users//winutils-master/hadoop-2.7.1"); 
    }   
    
  3. Добавьте это в ваш сеанс spark (вы можете изменить его на C: /Temp вместо Desktop).

    .config("hive.exec.scratchdir","C:/Users//Desktop/tmphive")
    
  4. Откройте cmd.exe и запустите:

    "path\to\hadoop-2.7.1\bin\winutils.exe" chmod 777 C:\Users\\Desktop\tmphive
    

Ответ 11

Возможно, попробуйте дать 777 разрешение на папку /tmp/hive, потому что я думаю, что искра запускается как анонимный пользователь (который поступит в другую категорию пользователей), и это разрешение должно быть рекурсивным. У меня была эта же проблема с 1.5.1 версией искры для улья, и она работала, давая разрешение 777, используя команду ниже в linux

chmod -r 777 /tmp/hive

Ответ 13

Использование правильной версии winutils.exe помогло мне. Winutils должны быть из версии Hadoop, для которой был предварительно создан Spark.

Задайте для переменной среды HADOOP_HOME расположение bin файла winutils.exe. Я сохранил winutils.exe вместе с файлами C:\Spark\bin. Так что теперь мои SPARK_HOME и HADOOP_HOME указывают на одно и то же местоположение C:\Spark.

Теперь, когда winultils был добавлен в путь, дайте разрешения для папки winutils.exe chmod 777 C:\tmp\hive используя winutils.exe chmod 777 C:\tmp\hive

Ответ 14

Я получаю ту же ошибку "Корневая директория: /tmp/hive в HDFS должна быть доступной для записи. Текущие разрешения: rw-rw-rw-" в Windows 7. Вот что я сделал, чтобы решить эту проблему:

  1. Я установил Spark в C:\Program Files (x86)..., он искал /tmp/hive в C: т.е. C:\tmp\hive
  2. Я скачал WinUtils.exe с https://github.com/steveloughran/winutils. Я выбрал версию, аналогичную той, которую я выбрал для пакета hadoop при установке Spark. то есть hadoop-2.7.1 (вы можете найти его в папке bin, т.е. https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin)
  3. Теперь использовал следующую команду, чтобы сделать папку c:\tmp\hive доступной для записи winutils.exe chmod 777\tmp\hive

Примечание. В предыдущей версии winutils команда chmod безошибочно устанавливала требуемое разрешение, но spark по-прежнему жаловался, что папка /tmp/hive недоступна для записи.

Ответ 15

Я только что решил эту проблему в моей среде Win7. Я изменил настройки DNS с неверным IP. Это делает мой рабочий стол не удалось подключиться к контроллеру домена. После того, как я установил правильный DNS IP и перезагрузил машину. Вопрос исчез. Я могу использовать winutils для каталога.