2015-09-22 2 views
34

Я пытаюсь выполнить spark-shell на Windows 10, но я все время получаю эту ошибку каждый раз, когда запускаю ее.Почему искр-оболочка терпит неудачу с NullPointerException?

Я использовал как последние версии, так и искро-1.5.0-bin-hadoop2.4.

15/09/22 18:46:24 WARN Connection: BoneCP specified but not present in  
CLASSPATH (or one of dependencies) 
15/09/22 18:46:24 WARN Connection: BoneCP specified but not present in     CLASSPATH (or one of dependencies) 
15/09/22 18:46:27 WARN ObjectStore: Version information not found in  metastore. hive.metastore.schema.verification is not enabled so recording the  schema version 1.2.0 
15/09/22 18:46:27 WARN ObjectStore: Failed to get database default,   returning NoSuchObjectException 
15/09/22 18:46:27 WARN : Your hostname, DESKTOP-8JS2RD5 resolves to a  loopback/non-reachable address: fe80:0:0:0:0:5efe:c0a8:103%net1, but we couldn't  find any external IP address! 
java.lang.RuntimeException: java.lang.NullPointerException 
     at  org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522) 
     at org.apache.spark.sql.hive.client.ClientWrapper.<init> (ClientWrapper.scala:171) 
    at  org.apache.spark.sql.hive.HiveContext.executionHive$lzycompute(HiveContext.scala :163) 
     at  org.apache.spark.sql.hive.HiveContext.executionHive(HiveContext.scala:161) 
     at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:168) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.apache.spark.repl.SparkILoop.createSQLContext(SparkILoop.scala:1028) 
    at $iwC$$iwC.<init>(<console>:9) 
    at $iwC.<init>(<console>:18) 
    at <init>(<console>:20) 
    at .<init>(<console>:24) 
    at .<clinit>(<console>) 
    at .<init>(<console>:7) 
    at .<clinit>(<console>) 
    at $print(<console>) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) 
    at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1340) 
    at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) 
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) 
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) 
    at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) 
    at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) 
    at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) 
    at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:132) 
    at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:124) 
    at org.apache.spark.repl.SparkIMain.beQuietDuring(SparkIMain.scala:324) 
    at org.apache.spark.repl.SparkILoopInit$class.initializeSpark(SparkILoopInit.scala:124) 
    at org.apache.spark.repl.SparkILoop.initializeSpark(SparkILoop.scala:64) 
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1$$anonfun$apply$mcZ$sp$5.apply$mcV$sp(SparkILoop.scala:974) 

      at  org.apache.spark.repl.SparkILoopInit$class.runThunks(SparkILoopInit.scala:159) 
      at org.apache.spark.repl.SparkILoop.runThunks(SparkILoop.scala:64) 
      at  org.apache.spark.repl.SparkILoopInit$class.postInitialization(SparkILoopInit.sca  la:108) 
      at  org.apache.spark.repl.SparkILoop.postInitialization(SparkILoop.scala:64) 
      at  org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$proc  ess$1.apply$mcZ$sp(SparkILoop.scala:991) 
      at  org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$proc  ess$1.apply(SparkILoop.scala:945) 
      at  org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$proc  ess$1.apply(SparkILoop.scala:945) 
      at  scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scal  a:135) 
      at  org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(Spark  ILoop.scala:945) 
      at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) 
      at org.apache.spark.repl.Main$.main(Main.scala:31) 
      at org.apache.spark.repl.Main.main(Main.scala) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
      at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:672) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
    Caused by: java.lang.NullPointerException 
    at java.lang.ProcessBuilder.start(Unknown Source) 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:445) 
    at org.apache.hadoop.util.Shell.run(Shell.java:418) 
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650) 
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:739) 
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:722) 
    at org.apache.hadoop.fs.FileUtil.execCommand(FileUtil.java:1097) 
    at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:559) 
    at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission(RawLocalFileSystem.java:534) 
    at org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:599) 
    at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:554) 
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:508) 
    ... 56 more 

    <console>  :10: error: not found: value sqlContext 
       import sqlContext.implicits._ 
       ^
    <console>:10: error: not found: value sqlContext 
     import sqlContext.sql 
     ^

    scala> 
+0

Я загрузил искру-1.5.0-bin-hadoop2.4 и начал искру-оболочку, но sqlContext загружает без проблем для меня. Я получил те же предупреждающие сообщения **, кроме ** для предупреждения имени хоста, поэтому я предполагаю, что вам нужно будет исправить сетевую конфигурацию. –

+0

Я не могу понять причину. Я играл с заранее подготовленным пакетом. После того, как я попытался загрузить исходный код 'git clone git: //github.com/apache/spark.git -b branch-1.6', он сработал. – Habib

+0

@Habib Thx. Я тоже играю с готовым пакетом. Какую ОС вы используете, кстати? – mbh86

ответ

3

Я предполагаю, что вы работаете в https://issues.apache.org/jira/browse/SPARK-10528. Я видел ту же проблему, что и в Windows 7. Первоначально я получал исключение NullPointerException так же, как и вы. Когда я поместил winutils в каталог bin и установил HADOOP_HOME, чтобы указать на каталог Spark, я получил ошибку, описанную в JIRA-проблеме.

+0

, так вы говорите, что помещая HADOOP_HOME в искровой директорий, это вызвало ошибку? Мой HADOOP_HOME в настоящее время настроен на c: \ winutitls, который не является моей причиной искры, и в настоящее время я получаю эту ошибку. –

2

Или, возможно, это ссылка здесь ниже, будет легче следовать,

https://wiki.apache.org/hadoop/WindowsProblems

В основном скачать и скопировать winutils.exe к вашей искрой \ бен папку. Повторно запустить свечу зажигания

Если вы не установили свой/tmp/hive в состояние записи, сделайте это.

+0

Также, лучше всего, чтобы вы запускали свою искровую оболочку в папке/spark/bin. – kepung

+0

Что это значит? Где вы стрелять? Извините, если этот вопрос кажется сумасшедшим, просто не знаю, почему люди будут стрелять из него где-нибудь еще, и я пытаюсь самостоятельно что-то устранить, и я просто пытаюсь исключить все как причину неудачи. –

44

Я использовал Spark 1.5.2 с Hadoop 2.6 и имел схожие проблемы. Решено, выполнив следующие действия:

  1. Скачать winutils.exe из repository в некоторой локальной папке, например, C:\hadoop\bin.

  2. HADOOP_HOME до C:\hadoop.

  3. Создать c:\tmp\hive (используя Проводник Windows или любой другой инструмент).

  4. Открыть командную строку с правами администратора.

  5. Run C:\hadoop\bin\winutils.exe chmod 777 /tmp/hive

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

+0

'HADOOP_HOME' является пользователем, если системная переменная? Вы запускаете его в Windows 10? Я спрашиваю, потому что он не работает для меня ... – Bakus123

+0

Вы установили 'SPARK_LOCAL_HOSTNAME = localhost'? – Bakus123

+0

Я все еще получаю предупреждения, но не ОШИБКИ. – max

0

Вы можете решить эту проблему, установив java-файл mysqlconnector в папку spark-1.6.0/libs и перезагрузив его снова. Он работает.

Важен здесь вместо того, чтобы искры скорлупы вы должны сделать

spark-shell --driver-class-path /home/username/spark-1.6.0-libs-mysqlconnector.jar 

Надеются, что это должно работать.

5

Я столкнулся с аналогичной проблемой, разрешил ее, поставив winutil внутри папки bin. Hadoop_home должен быть установлен как C: \ Winutils и winutil для размещения в C: \ Winutils \ bin.

Windows 10 64 бит Winutils доступны в https://github.com/steveloughran/winutils/tree/master/hadoop-2.6.0/bin

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

См https://wiki.apache.org/hadoop/WindowsProblems

+0

Работа с командной строкой с правами администратора. благодаря – K246

1

Для Python - Создание SparkSession в вашем питона (Этот раздел конфигурации только для Windows,)

spark = SparkSession.builder.config("spark.sql.warehouse.dir", "C:/temp").appName("SparkSQL").getOrCreate() 

Копирование winutils.exe и сохранить в C: \ winutils \ и выполнить приведенные ниже команды

C:\Windows\system32>C:\winutils\bin\winutils.exe chmod 777 C:/temp 

Запустить командную строку в режиме ADMIN (Запуск от имени администратора)

1

Чтобы устранить это исключение, вам необходимо предоставить разрешение/tmp/hive.

Надеюсь, у вас уже есть winutils.exe и установить HADOOP_HOME переменная окружения. Затем откройте командную строку и запустить следующую команду с правами администратора:

Если winutils.exe присутствует в D: \ winutils \ бен расположение и \ TMP \ улей также в D диск:

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

Для получения более подробной информации, вы можете обратиться по следующим ссылкам:

Frequent Issues occurred during Spark Development
How to run Apache Spark on Windows7 in standalone mode

0

Моя проблема заключалась в наличии других .exe/Jars внутри папки winutils/bin. Поэтому я очистил всех остальных и остался с winutils.exe один. Использовалась искра 2.1.1

0

Проблема была решена после установки правильной версии Java в моем случае ее java 8 и установки переменных окружения. Убедитесь, что вы запустили winutils.exe для создания временного каталога, как показано ниже.

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

Выше не должно быть никаких ошибок. Используйте java -version, чтобы проверить версию java, которую вы используете, перед вызовом искровой оболочки.

Смежные вопросы