2017-10-25 5 views
1

私の人生の間、私はPySparkのインストールに何が間違っているのか理解できません。私はHadoopを含むすべての依存関係をインストールしましたが、PySparkはそれを見つけることができません - これを正しく診断していますか?pysparkが "org.apache.spark.sql.hive.HiveSessionStateBuilder ''をインスタンス化しているときに"エラー "で失敗するのはなぜですか?

は、以下の完全なエラー・メッセージを参照してください、それが最終的にPySpark SQL

pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveSessionStateBuilder':"

[email protected]:~$ pyspark 
Python 2.7.10 (default, Feb 7 2017, 00:08:15) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 
Setting default log level to "WARN". 
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 
WARNING: An illegal reflective access operation has occurred 
WARNING: Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil (file:/opt/spark-2.2.0/jars/hadoop-auth-2.7.3.jar) to method sun.security.krb5.Config.getInstance() 
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.security.authentication.util.KerberosUtil 
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 
WARNING: All illegal access operations will be denied in a future release 
17/10/24 21:21:58 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041. 
17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042. 
17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043. 
Traceback (most recent call last): 
    File "/opt/spark/python/pyspark/shell.py", line 45, in <module> 
    spark = SparkSession.builder\ 
    File "/opt/spark/python/pyspark/sql/session.py", line 179, in getOrCreate 
    session._jsparkSession.sessionState().conf().setConfString(key, value) 
    File "/opt/spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1133, in __call__ 
    File "/opt/spark/python/pyspark/sql/utils.py", line 79, in deco 
    raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace) 
pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveSessionStateBuilder':" 
>>> 

答えて

1

TLに失敗し、閉じるDRは他のすべてのスパークのプロセスや、最初からやり直します。

次のWARNメッセージは、ポートを保持する別のプロセス(または複数のプロセス)が存在すると示しています。

私はプロセスがスパークプロセスであることを確信しています。 pysparkセッションまたはSparkアプリケーション。スパーク/ pyspark後にポート4044は、それがHiveSessionStateBuilderをインスタンス化しようとした、失敗したウェブUIのために自由に使用することを発見した理由です

17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041. 
17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042. 
17/10/24 21:21:59 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043. 

同じローカルのHiveメタストアを使用する複数のSparkアプリケーションを起動して実行できないため、pysparkが失敗しました。

関連する問題