2017-01-13 13 views
1

Spark 2.0.2からSpark 2.1.0にアップグレードしたばかりです(後でHadoop 2.7 &用に事前ビルドされたバージョンをダウンロードしています)。 Hiveはインストールされていません。事前ビルド済みのSpark 2.1.0は、spark-shellを起動するときにmetastore_dbフォルダとderby.logを作成します。

スパークシェルの起動時に、metastore_db/フォルダとderby.logファイルが、警告ログ(以前のバージョンでは印刷されていない)と共に、起動場所に作成されます。デバッグログの

クローサー検査スパーク2.1.0がHiveMetastoreConnectionを初期化しようとしていることを示しています。

17/01/13 09:14:44 INFO HiveUtils: Initializing HiveMetastoreConnection version 1.2.1 using Spark classes.

スパーク2.0.2のための同様のデバッグログがHiveMetastoreConnectionの任意の初期化を示していません。

これは意図した動作ですか? spark.sql.warehouse.dirがセッション間で共有される静的な設定になっているという事実に関係していますか? Hiveをインストールしていないので、どうすればこの問題を回避できますか?

ありがとうございます!スパーク2.1.0 documentation pagesから

答えて

3

:ハイブ-site.xmlのにより構成されていない場合

、自動的 コンテキストが現在のディレクトリにmetastore_dbを作成しspark.sql.warehouseで構成ディレクトリ を作成.dirのデフォルト値は、現在のディレクトリにある spark-warehouseで、Sparkアプリケーションは が起動しています。 のhive-metastore.warehouse.dirプロパティは、Spark 2.0.0以降、hive-site.xmlは推奨されていません。代わりに、 spark.sql.warehouse.dirを使用して、 ウェアハウスにデータベースのデフォルトの場所を指定します。

Hiveがインストールされていないため、hive-site.xml設定ファイルはありません。これは、現在のディレクトリをデフォルトにする必要があります。

SparkでHiveContextを使用する予定がない場合は、ソースからSpark 2.1.0を再インストールし、Mavenで再構築し、Hiveサポートを有効にするフラグ-Phive -Phive-thriftserverを省略してください。

+0

本当にありがとうございます。私はソースからの再構築を避けて、これらのフォルダが作成されないようにしたいと考えましたが、他の方法はありません。 – hiryu

2

将来のgooglerの場合:すべての作業ディレクトリでmetastore_dbderby.logを実際に作成する根本的な理由は、デフォルト値のderby.system.homeです。

spark-defaults.confで変更することができます。hereを参照してください。

+1

埋め込まれた、揮発性の**メモリ内の** Derbyデータベースを要求して 'metastore_db'を作成しないようにする方法についてはhttps://issues.apache.org/jira/browse/SPARK-4758も参照してください。 –

+0

'hive.exec.scratchdir'プロパティも設定する方法については、https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-tips-and-tricks-running-spark-windows.htmlも参照してください。 。 –

0

これはSpark 1.6でも発生します。あなたはスパークに追加オプションを提出追加することによって、パスを変更することができます。

-Dderby.system.home=/tmp/derby 

(またはderby.propertiesことで、それを変更するにはいくつかの方法があります)。

関連する問題