2017-05-09 3 views
0

私の単体テストでは、自分のラップトップにハイブコンテキストでローカルスパークを実行します。これらのフォルダはorg.apache.hadoop.hive.ql.session.SessionStateクラスによって作成された埋め込みHiveを/ varと/ tmpディレクトリからリダイレクト

... INFO SessionState: Created local directory: /var/folders/h3/... 
... INFO SessionState: Created HDFS directory: /tmp/hive/<username>/... 

:起動時に、それはその一時ファイルのための2つのディレクトリ、/tmp/var下に1つずつ作成されます。

ローカルのセキュリティサービスを起動しないように、これらのディレクトリを別のフォルダにリダイレクトする必要があります。 /Users/<username>/safe/

これらのデフォルト設定を上書きして、指定したパスの一時フォルダを開くにはどうすればよいですか?スタンドアロンハイブ、SessionState

+0

私はそれが 'spark.sql.warehouse.dir 'だと思います。パラメータを見てください。 'SparkSession.config()'を使って設定することができます – philantrovert

+0

@philantrovert nope :( –

答えて

0

は、いくつかの設定可能なパラメータ、hive-site.xmlから設定可能なすべてを持っています

SCRATCHDIR("hive.exec.scratchdir", "/tmp/hive", 
    "HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. " + 
    "For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, " + 
    "with ${hive.scratch.dir.permission}."), 

LOCALSCRATCHDIR("hive.exec.local.scratchdir", 
    "${system:java.io.tmpdir}" + File.separator + "${system:user.name}", 
    "Local scratch space for Hive jobs"), 

DOWNLOADED_RESOURCES_DIR("hive.downloaded.resources.dir", 
    "${system:java.io.tmpdir}" + File.separator + "${hive.session.id}_resources", 
    "Temporary local directory for added resources in the remote file system."), 

HIVEHISTORYFILELOC("hive.querylog.location", 
    "${system:java.io.tmpdir}" + File.separator + "${system:user.name}", 
    "Location of Hive run time structured log file") 

私は、Sparkはハイブを埋め込む方法を正確に慣れていないんだけど、私はhive-site.xml(1がある確信していますリンクはテストconfです)、これはhive.exec.scratchdir,hive.exec.local.scratchdirと残りの値を制御します。

関連する問題