IDEA本地运行spark生成数据到hive中出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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目录,再次确认此目录的权限。
解决办法:
从网上看到有帖子解决
- 系统中首先要配置hadoop环境和winutils工具
- 打开cmd命令提示符窗口,输入以下命令:
winutils.exe ls F: mphive
winutils.exe chmod 777 F: mphive
winutils.exe ls F: mphive
3.再次运行idea程序,最终还是报错
实际解决办法:
- 系统中还是要安装hadoop环境和winutils工具;
- 打开cmd窗口,切换到idea程序所在的盘符下。
我的开发路径在e:workspace下,所以在命令提示行下输入->: e: (回车即切换到e盘下)
(命令提示符默认在C盘下操作,所以之前按照网上解决办法都是在c盘下创建tmphive目录,实际idea已经在E盘下创建了tmphive目录,只是没有权限) - 在通过winutils进行对e盘下的tmphive目录赋权限即可。
以上是关于IDEA本地运行spark生成数据到hive中出错的主要内容,如果未能解决你的问题,请参考以下文章