복붙노트

[HADOOP] NullPointerException으로 spark-shell이 ​​실패하는 이유는 무엇입니까?

HADOOP

NullPointerException으로 spark-shell이 ​​실패하는 이유는 무엇입니까?

Windows 10에서 spark-shell을 실행하려고 시도하지만 실행 할 때마다이 오류가 계속 발생합니다.

나는 최근과 spark-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(SparkILoop.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)
   org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:599)
    at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:554)

org.apache.hadoop.hive.ql.session.SessionState.start (SessionState.java:508)         ... 56 개 더보기

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

해결법

  1. ==============================

    1.필자는 Spark 1.5.2를 Hadoop 2.6과 함께 사용했고 비슷한 문제가있었습니다. 다음 단계를 수행하여 해결 :

    필자는 Spark 1.5.2를 Hadoop 2.6과 함께 사용했고 비슷한 문제가있었습니다. 다음 단계를 수행하여 해결 :

    그것으로, 나는 여전히 몇 가지 경고를 받고 있지만 오류가없고 Spark 응용 프로그램을 정상적으로 실행할 수 있습니다.

  2. ==============================

    2.나는 비슷한 문제에 직면했다. winutil을 bin 폴더에 넣어 해결했다. Hadoop_home은 C : \ Winutils로 설정하고 winutil은 C : \ Winutils \ bin에 배치해야합니다.

    나는 비슷한 문제에 직면했다. 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를 참조하십시오.

  3. ==============================

    3.내 추측으로는 https://issues.apache.org/jira/browse/SPARK-10528을 실행하고있는 것입니다. Windows 7에서 동일한 문제가 발생하는 것을보고있었습니다. 처음에는 NullPointerException이 발생했습니다. winutils를 bin 디렉토리에 넣고 HADOOP_HOME을 Spark 디렉토리를 가리 키도록 설정하면 JIRA 문제에서 설명한 오류가 발생합니다.

    내 추측으로는 https://issues.apache.org/jira/browse/SPARK-10528을 실행하고있는 것입니다. Windows 7에서 동일한 문제가 발생하는 것을보고있었습니다. 처음에는 NullPointerException이 발생했습니다. winutils를 bin 디렉토리에 넣고 HADOOP_HOME을 Spark 디렉토리를 가리 키도록 설정하면 JIRA 문제에서 설명한 오류가 발생합니다.

  4. ==============================

    4.또는 아래 링크를 클릭하면 더 쉽게 이해할 수 있습니다.

    또는 아래 링크를 클릭하면 더 쉽게 이해할 수 있습니다.

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

    기본적으로 winutils.exe를 다운로드하여 spark \ bin 폴더에 복사하십시오. 스파크 셸 재실행

    / tmp / hive를 쓰기 가능 상태로 설정하지 않았다면 그렇게하십시오.

  5. ==============================

    5.이 예외를 해결하려면 / tmp / hive 디렉토리에 대한 권한을 부여해야합니다.

    이 예외를 해결하려면 / tmp / hive 디렉토리에 대한 권한을 부여해야합니다.

    Winutils.exe를 이미 갖고 HADOOP_HOME 환경 변수를 설정하기를 바랍니다. 그런 다음 명령 프롬프트를 열고 관리자 권한으로 다음 명령을 실행하십시오.

    winutils.exe가 D : \ winutils \ bin 위치에 있고 \ tmp \ hive가 D 드라이브에도있는 경우 :

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

    자세한 내용은 다음 링크를 참조하십시오.

    스파크 개발 중 자주 발생하는 문제 독립 실행 형 모드로 Windows 7에서 Apache Spark를 실행하는 방법

  6. ==============================

    6.파이썬의 경우 - 파이썬에서 SparkSession 만들기 (이 구성 섹션은 Windows에만 해당)

    파이썬의 경우 - 파이썬에서 SparkSession 만들기 (이 구성 섹션은 Windows에만 해당)

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

    winutils.exe를 복사하고 C : \ winutils \ bin에 보관하고 다음 명령을 실행하십시오.

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

    ADMIN 모드에서 명령 프롬프트를 실행합니다 (관리자 권한으로 실행).

  7. ==============================

    7.spark-1.6.0 / libs 폴더에 mysqlconnector jar를 놓고 다시 시작하여이 문제를 해결할 수 있습니다.

    spark-1.6.0 / libs 폴더에 mysqlconnector jar를 놓고 다시 시작하여이 문제를 해결할 수 있습니다.

    여기서 중요한 것은 spark-shell을 실행하는 대신에해야 할 일입니다.

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

    희망이 작동합니다.

  8. ==============================

    8.내 문제는 winutils / bin 폴더 안에 다른 .exe / Jars가있는 것이 었습니다. 그래서 나는 다른 모든 것들을 제거하고 winutils.exe 만 남겼습니다. 스파크 2.1.1 사용

    내 문제는 winutils / bin 폴더 안에 다른 .exe / Jars가있는 것이 었습니다. 그래서 나는 다른 모든 것들을 제거하고 winutils.exe 만 남겼습니다. 스파크 2.1.1 사용

  9. ==============================

    9.문제는 올바른 Java 버전을 Java 8에 설치하고 환경 변수를 설정 한 후에 해결되었습니다. 아래와 같이 winutils.exe를 실행하여 임시 디렉토리를 만드십시오.

    문제는 올바른 Java 버전을 Java 8에 설치하고 환경 변수를 설정 한 후에 해결되었습니다. 아래와 같이 winutils.exe를 실행하여 임시 디렉토리를 만드십시오.

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

    위의 값은 오류를 반환하지 않습니다. java -version을 사용하여 spark-shell을 호출하기 전에 사용중인 java의 버전을 확인하십시오.

  10. ==============================

    10.Windows에서 "winutils"를 복제해야합니다.

    Windows에서 "winutils"를 복제해야합니다.

    git clone https://github.com/steveloughran/winutils.git
    

    set var HADOOP_HOME to DIR_CLONED\hadoop-{version}
    

    당신의 hadoop의 버전을 선택하는 것을 잊지 마십시오.

  11. from https://stackoverflow.com/questions/32721647/why-spark-shell-fails-with-nullpointerexception by cc-by-sa and MIT license