Ошибка HADOOP 3.2.1: java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

Я получаю эту ошибку во время установки hadoop 3.2.1

Мне сказали следовать этому руководству: https://towardsdatascience.com/installing-hadoop-3-2-1-single-node-cluster-on-windows-10-ac258dd48aef Все работает до шага 6. когда я пытаюсь запустить . \start-dfs.cmd

Я нашел решения, но ни одно не сработало.

Все собственные файлы добавляются в корзину с сайта github (hadoop.dll и т. д.), а также добавляется hadoop.dll в папку System32.

Я также попытался отредактировать код src в InteliJ (добавив пакет org.apache.hadoop.io.nativeio) и создав класс NativeIO.java, как показано ниже:

  1. Получение и исправление Hadoop Hadoop совместим с JDK 7 и 8. Вы можете проверить, установлены ли у вас один (или несколько) из них. Двоичный файл Hadoop можно найти по адресу http://hadoop.apache.org/releases.html. Извлеките все файлы в безопасное место. Например, C:\hadoop-2.7.3. Затем загрузите файлы исправлений с https://github.com/srccodes/hadoop-common-2.2.0-bin/archive/master.zip. Извлеките (и замените) все файлы в папку bin бинарного файла Hadoop. В этом примере полный путь будет C:\hadoop-2.7.3\bin.

  2. Разработка с помощью IntelliJ IDEA IntelliJ IDEA — это мощная интегрированная среда разработки для Java-разработки. Возможно, он уже установлен на вашем рабочем компьютере. Если нет, возьмите его с https://www.jetbrains.com/idea/. Версия «Сообщество» бесплатна для некоммерческого использования. Хорошее пошаговое руководство по этой части можно найти по адресу https://mrchief2015.wordpress.com/2015/02/09/compiling-and-debugging-hadoop-applications-with-intellij-idea-for-windows/ .

  3. Устранение неполадок: 1. Вы получаете исключение при отладке, которое говорит

Exception in thread "main" java.io.IOException: (null) entry in command string: null chmod 0700 ...
 at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:769)

Решение. Вам необходимо установить переменную среды HADOOP_HOME. Вы можете добавить его как общесистемный или только для IntelliJ, как показано в Настройка и использование переменных среды в IntelliJ Idea. Имя переменной среды должно быть HADOOP_HOME, а ее значение — путь к папке вашего двоичного файла Hadoop (в этом примере значение — C:\hadoop-2.7.3).

  1. 3.2 Вы можете получить еще одно исключение, которое говорит

Exception in thread "main" java.lang.UnsatisfiedLinkError:
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
 at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)

Чтобы решить эту проблему, вам необходимо скачать исходный пакет Hadoop по ссылке, указанной в разд. 1, извлеките и скопируйте hadoop-2.7.3-src.tar.gz\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio \NativeIO.java в свой проект и измените строку 609 (в доступе к функции) из

return access0(path, desiredAccess.accessRight());

to

return true; 

Что делать?


person leroyjenkins    schedule 14.02.2021    source источник
comment
Я не могу понять из вашего поста, в чем на самом деле ваш вопрос, но для ошибки ссылки я предлагаю вам использовать виртуальную машину Linux или WSL2, поскольку Hadoop все равно не работает хорошо с Windows, несмотря на то, что он может сначала установите его. Кроме того, использование кода 2.7.3 с Hadoop3 не будет работать.   -  person OneCricketeer    schedule 14.02.2021