背景
首次编写 Spark 访问 Hive 代码,初始化 Hive 实例时报错,Spark 访问 HDFS 文件正常,Spark 基于RDD 开发正常。
报错信息如下:
示例代码如下:
build.sbt 文件如下:
且 hive-site.xml 已放置 Resources Root 目录下,如下图:
原因
缺少 winutils.exe文件。
PS:Spark需要用到Hadoop中的一些类库&使用winutils.exe文件初始化Hive的上下文
解决
下载winutils.exe文件。
这并不意味这我们一定要安装Hadoop,我们可以直接下载所需要的winutils.exe到磁盘上的任何位置,比如,同时设置HADOOP_HOME=C:winutils
附 winutils.exe下载地址:https://github.com/steveloughran/winutils/tree/master/hadoop-2.6.0/bin
注意
A: Spark处理Hives数据需要作业的执行模式为yarn-client(local也行),不能为yarn-cluster,否则会报上述异常。
B: winutils.exe 环境变量配置完毕之后需要重启idea,否则不生效(坑)
C: 缺少此文件不影响正常读写HDFS文件,访问Hbase,RDD编程
参考
[2]https://yq.aliyun.com/articles/96424?t=t1
分享是一种美德!
想对你说:“
昨天越来越多,明天越来越少,这就叫人生。
你之所以觉得时间一年比一年过得快,
是因为时间对你一年比一年重要。
别因为害怕孤单而凑合着相拥,
也别因为一时的别无选择而将就的活着,
总要有一段路,需要你独自走过。
愿你是阳光,明媚不忧伤。”
Hbase|Kylin|Hive|Impala|Spark|Phoenix ect.
第一个专注Hbase公众号
虽没官方认证
但这一定是个负责任的公众号
将最好的祝福送给正在阅读的你,感恩!
领取专属 10元无门槛券
私享最新 技术干货