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

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

在idea 運行時報錯:sql

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: ---------apache

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

解決辦法:工具

從網上看到有帖子解決oop

  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程序,最終仍是報錯idea

實際解決辦法:spa

  1. 系統中仍是要安裝hadoop環境和winutils工具;
  2. 打開cmd窗口,切換到idea程序所在的盤符下。
    個人開發路徑在e:\workspace下,因此在命令提示行下輸入->: e: (回車即切換到e盤下)
    (命令提示符默認在C盤下操做,因此以前按照網上解決辦法都是在c盤下建立tmp\hive目錄,實際idea已經在E盤下建立了tmp\hive目錄,只是沒有權限)
  3. 在經過winutils進行對e盤下的tmp\hive目錄賦權限便可。
相關文章
相關標籤/搜索