2017-02-26 6 views
1

pyspark 1.6.Xを実行するとうまくいきます。ハイブメタストアの接続性の問題のためにpyspark 2.Xを実行できません

17/02/25 17:35:41 INFO storage.BlockManagerMaster: Registered BlockManager 
Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /__/.__/\_,_/_/ /_/\_\ version 1.6.1 
     /_/ 

Using Python version 2.7.13 (default, Dec 17 2016 23:03:43) 
SparkContext available as sc, SQLContext available as sqlContext. 
>>> 

しかし、私は2.xのインストールを刺激するために指すようにSPARK_HOMEPYTHONPATHPATHをリセットした後、物事は

(a)は、私は手動でダービーmetastore_dbを毎回削除する必要がすぐに南に行きます。

[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
NOTE: SPARK_PREPEND_CLASSES is set, placing locally compiled Spark classes ahead of assembly. 
Setting default log level to "WARN". 
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 
17/02/25 17:32:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
17/02/25 17:32:53 WARN metastore.ObjectStore: Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0 
17/02/25 17:32:53 WARN metastore.ObjectStore: Failed to get database default, returning NoSuchObjectException 

私はhive機能のために/ケアを必要としません:それはこれらの不幸な警告を印刷した後ハング:

(b)のpysparkは起動しませんが、それはうまく彼らがした場合にをを必要としているかもしれスパーク2.X. hiveの最も簡単な作業構成は、pyspark 2.Xを満足させるものですか?

+0

警告はOKですが、空のメタストアを作成するだけです。 'SPARK_PREPEND_CLASSES'にどのライブラリを追加しますか? pysparkの初期化がハングアップするときにspark jvmプロセスのスレッドダンプを添付できますか? – Mariusz

+0

['enableHiveSupport'](http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.SparkSession.Builder.enableHiveSupport)関数を試しましたか? Hiveにアクセスしていなくても、1.6から2.xへの移行時にDataFramesに問題がありました。ビルダーでその関数を呼び出すと、私の問題が解決しました。 – santon

+0

@サンタン私はそれにいくつかのフォローアップの質問がありますが、クレジットを付与することから始めたいと考えています – javadba

答えて

1

enableHiveSupport機能を試しましたか? Hiveにアクセスしていなくても、1.6から2.xへの移行時にDataFramesに問題がありました。ビルダーでその関数を呼び出すと、私の問題が解決しました。

sparkコンテキストをプロビジョニングするためにpysparkシェルを使用している場合、ハイブサポートを有効にするには、configを使用して設定する必要があります。 spark-defaults.confspark.sql.catalogImplementation hiveを追加してみてください。

+0

これは便利な考慮事項です。しかし、その 'pyspark'をどう扱うかは*起動さえしないのですか?あなたが 'SparkSession.Builder'を参照していたのは私の理解ですが、' pyspark-shell'で実行する場合、SparkSessionは既に作成されています。 – javadba

+0

したがって、pysparkシェルを使用するとデフォルトの設定が読み込まれます。設定でHiveを有効にする方法を示すために答えを修正します。 – santon

関連する問題