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
^
Hadoop 2.6でSpark 1.5.2を使用しましたが、同様の問題が発生しました。次の手順を実行して解決しました。
winutils.exe
を repository からローカルフォルダーにダウンロードします。 C:\hadoop\bin
。
HADOOP_HOME
をC:\hadoop
に設定します。
c:\tmp\Hive
ディレクトリを作成します(Windowsエクスプローラーまたはその他のツールを使用)。
管理者権限でコマンドプロンプトを開きます。
C:\hadoop\bin\winutils.exe chmod 777 /tmp/Hive
を実行します
それで、私はまだいくつかの警告を受け取っていますが、エラーはなく、Sparkアプリケーションを正常に実行できます。
私は同様の問題に直面していましたが、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://issues.Apache.org/jira/browse/SPARK-10528 に遭遇しています。 Windows 7でも同じ問題が発生していました。最初は、NullPointerExceptionが発生していました。 winutilsをbinディレクトリに入れ、HADOOP_HOMEがSparkディレクトリを指すように設定すると、JIRAの問題で説明されているエラーが発生しました。
または、以下のこのリンクの方がわかりやすいかもしれません。
https://wiki.Apache.org/hadoop/WindowsProblems
基本的にwinutils.exeをダウンロードして、spark\binフォルダーにコピーします。スパークシェルを再実行する
/ tmp/Hiveを書き込み可能な状態に設定していない場合は、そうしてください。
For Python-でSparkSessionを作成しますpython(この設定セクションは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
管理者モードでコマンドプロンプトを実行(管理者として実行)
この例外を解決するには、/ tmp/Hiveディレクトリに許可を与える必要があります。
既にwinutils.exeがあり、HADOOP_HOME環境変数を設定していることを願っています。次に、コマンドプロンプトを開き、次のコマンドを管理者として実行します。
Winutils.exeがD:\ winutils\binの場所にあり、\ tmp\HiveもDドライブにある場合:
D:\winutils\bin\winutils.exe chmod 777 D:\tmp\Hive
詳細については、次のリンクを参照できます。
私の問題は、winutils/binフォルダー内に他の.exe/Jarsがあることでした。したがって、他のすべてをクリアし、winutils.exeだけを残しました。 spark 2.1.1を使用していた
この問題を解決するには、mysqlconnector jarをspark-1.6.0/libsフォルダーに配置し、再起動します。動作します。
重要なことは、spark-Shellを実行する代わりにここにあることです。
spark-Shell --driver-class-path /home/username/spark-1.6.0-libs-mysqlconnector.jar
うまくいくことを願っています。
Windowsでは、「winutils」のクローンを作成する必要があります
git clone https://github.com/steveloughran/winutils.git
そして
set var HADOOP_HOME to DIR_CLONED\hadoop-{version}
Hadoopのバージョンを選択することを忘れないでください。
正しいJavaバージョンの場合、そのJava 8および環境変数の設定。winutils.exeを実行して一時ファイルを作成してください。以下のディレクトリ。
c:\winutils\bin\winutils.exe chmod 777 \tmp\Hive
上記はエラーを返しません。つかいます Java -version
は、spark-Shellを呼び出す前に使用しているJavaのバージョンを確認します。