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

Почему./bin/spark-shell дает WARN NativeCodeLoader: не удается загрузить библиотеку native-hadoop для вашей платформы?

В Mac OS X я скомпилировал Spark из источников, используя следующую команду:

jacek:~/oss/spark
$ SPARK_HADOOP_VERSION=2.4.0 SPARK_YARN=true SPARK_HIVE=true SPARK_GANGLIA_LGPL=true xsbt
...

[info] Set current project to root (in build file:/Users/jacek/oss/spark/)
> ; clean ; assembly
...
[info] Packaging /Users/jacek/oss/spark/examples/target/scala-2.10/spark-examples-1.0.0-SNAPSHOT-hadoop2.4.0.jar ...
[info] Done packaging.
[info] Done packaging.
[success] Total time: 1964 s, completed May 9, 2014 5:07:45 AM

Когда я начал ./bin/spark-shell, я заметил следующее WARN-сообщение:

WARN NativeCodeLoader: невозможно загрузить библиотеку native-hadoop для вашего платформа... с использованием встроенных классов Java, где это применимо

В чем может быть проблема?

jacek:~/oss/spark
$ ./bin/spark-shell
Spark assembly has been built with Hive, including Datanucleus jars on classpath
14/05/09 21:11:17 INFO SecurityManager: Using Spark default log4j profile: org/apache/spark/log4j-defaults.properties
14/05/09 21:11:17 INFO SecurityManager: Changing view acls to: jacek
14/05/09 21:11:17 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(jacek)
14/05/09 21:11:17 INFO HttpServer: Starting HTTP Server
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 1.0.0-SNAPSHOT
      /_/

Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0)
Type in expressions to have them evaluated.
Type :help for more information.
...
14/05/09 21:11:49 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
...
4b9b3361

Ответ 1

Поддерживаемые платформы документации руководства Native Libraries в Apache Hadoop читает:

Собственная библиотека hadoop поддерживается только на платформах * nix. библиотека не работает с Cygwin или платформой Mac OS X.

Собственная библиотека hadoop в основном используется на платформе GNU/Linus и был протестирован на этих распределениях:

  • RHEL4/Fedora
  • Ubuntu
  • Gentoo

Во всех вышеперечисленных дистрибутивах 32/64 бит встроенной библиотеки hadoop будет работать с соответствующим 32/64 бит jvm.

Похоже, что сообщение WARN должно быть проигнорировано в Mac OS X, поскольку родная библиотека не просто существует для платформы.

Ответ 2

По моему опыту, если вы cd в /sparkDir/conf и переименуете spark-env.sh.template в spark-env.sh, а затем установите JAVA_OPTS и hadoop_DIR, он работает.

Вам также придется отредактировать эту строку /etc/profile:

export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native/:$LD_LIBRARY_PATH