在IDEA中运行SparkSQL读取hdfs文件报java.io.IOException: (null) entry in command string: null ls -F F:\tmp\hive

在IDEA中运行Spark SQL读取hdfs文件时报java.io.IOException: (null) entry in command string: null ls -F F:\tmp\hive的错,
或者是报 Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: ---------; 这样的错
我的情况是 spark在虚拟机中安装的 Windows上没有安。

第一个错误主要原因是 :

1、Windows上没有配hadoop的环境变量。
2、Spark初始化Hive上下文所需的winutils.exe文件丢失
3、hadoop bin目录下的 hadoop.dll 文件丢失

解决方案:

1、在Windows上配置Hadoop的运行环境

打开我的电脑高级系统设置中的环境变量设置。
在这里插入图片描述这里填写自己hadoop的安装路径!
在这里插入图片描述
在Path中加入bin目录和sbin目录

2、下载winutils 文件
点击下载即可
3、https://github.com/SweetInk/hadoop-common-2.7.1-bin中下载hadoop.dll
4、最后一种办法:重新下载hadoop解压

第二个错误的解决方案:

1、win+r cmd 进入系统操作界面
2、在黑界面输入:echo%HADOOP_HOME%
查看自己是否配置好了hadoop的环境变量
3、在黑界面输入:%HADOOP_HOME%\bin\winutils.exe chmod 777 F:\tmp\hive
这里填写自己的\tmp\hive 的准确目录,我的是在f盘下
4、在黑界面输入:%HADOOP_HOME%\bin\winutils.exe ls F:\tmp\hive
查看权限
在这里插入图片描述变成这样就可以了。
5、重启自己的IDEA 运行代码即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值