2016-04-15 36 views
0

嘗試在Spark中的Hive中創建外部表並保存內容時,出現以下錯誤。在Spark中的Hive中創建外部表

The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw- 

我甚至嘗試將/ tmp/hive文件夾的權限設置爲chmod 777,但沒有成功。

+0

檢查這個問題。在Windows上運行時遇到同樣的問題,根本原因是winutils的版本不正確。 http://stackoverflow.com/questions/33234311/spark-1-5-1-spark-shell-throws-runtimeexception –

回答

0

因爲我覺得你給了允許當地/tmp/hive目錄你可能會錯給的許可,但你應該在HDFS

hadoop fs -chmod 777 /tmp/hive 
+0

我已經做到了這一點,也完全控制/ tmp/hive文件夾,正在創建我在哪裏我安裝了eclipse,因爲我在本地模式下運行Spark從IDE –

0

入住蜂巢-site.xml中給予許可/tmp/hive如果您正在使用HDFS,首先是cfs或本地文件系統。

對於CFS,你將不得不使用sudo dse hadoop fs -chmod 777 /tmp/hive

對於HDFS,你將不得不使用 sudo hdfs dfs -chmod 777 /tmp/hivesudo hadoop fs -chmod 777 /tmp/hive

和地方我想,你已經採取了照顧。

+0

Hive倉庫的位置是/ apps/hive/warehouse 但是/ tmp/hive文件夾也在驅動器中創建,我已安裝eclipse –

+0

在scala中設置此參數然後在創建spark上下文時將代碼改爲「spark.eventLog.dir」,並將其指向某個合適的目錄。請參閱http://spark.apache.org/docs/latest/configuration.html –

0

在hive-site.xml中設置scratch目錄的更好方法是/ user/$ {username}/tmp/hive。這樣所有的查詢細節將被寫入提交的用戶臨時目錄。在這種情況下,您不需要更改權限就可以了。否則全局臨時目錄應該可以由所有用戶寫入。