IDEA本地運行spark生成數據到hive中出錯

在window下通過idea開發,在代碼中需要spark,使用loacl模式,生成一些數據存放到hive中,使用的也是spark自帶的hive庫。

在idea 運行時報錯:

Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState': java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: ---------

報錯信息可以看到是root想在/tmp/hive目錄下寫數據,而沒有權限。
首先本地是否有/tmp/hive目錄,再次確認此目錄的權限。

解決辦法:

從網上看到有帖子解決

  1. 系統中首先要配置hadoop環境和winutils工具
  2. 打開cmd命令提示符窗口,輸入以下命令:
winutils.exe ls F:\tmp\hive
winutils.exe chmod 777 F:\tmp\hive
winutils.exe ls F:\tmp\hive

3.再次運行idea程序,最終還是報錯

實際解決辦法:

  1. 系統中還是要安裝hadoop環境和winutils工具;
  2. 打開cmd窗口,切換到idea程序所在的盤符下。
    我的開發路徑在e:\workspace下,所以在命令提示行下輸入->: e: (回車即切換到e盤下)
    (命令提示符默認在C盤下操作,所以之前按照網上解決辦法都是在c盤下創建tmp\hive目錄,實際idea已經在E盤下創建了tmp\hive目錄,只是沒有權限)
  3. 在通過winutils進行對e盤下的tmp\hive目錄賦權限即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章