添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首发于 Hadoop

【spark篇】通过scala编写代码加载Hive时,提示找不到对应库、表

【问题描述】

今天在win本地环境下使用IDEA调试scala程序调试代码时,遇到如下报错:

加载Hive表数据的时候,遇到如下报错:

Exception in thread "main" org.apache.spark.sql.AnalysisException: Table or view not found: doe.ods_app_log;;
'UnresolvedRelation [doe, ods_app_log]

问题提示找不到Hive数据库中的库与表:doe.ods_app_log。解析过程比较长,如果也是一样的问题,那直接跳到【解决方案】看解决结果即可..

【问题分析】

找不到库表,说明scala调用sparkSeccion连接hive出了问题。

解决思路是

1) 先检查Hive数据库中有没有这个库表:

很明显测试环境的服务器上是有这个库表的,那说明服务器环境没问题。

2) 检查win本地环境是否已经配好了相应环境(spark、hadoop、scala安装环境),以及是否有版本冲突,这一步我这里也是OK的;

3)win本地环境使用Spark链接Hive数据库连接试试:

这里也可以正常加载,那就是IDEA配置除了问题;

4)IDEA配置不全,使spark找不到Hive元数据库存放在HDFS系统上的位置信息,所以在调试scala程序的时候,就无法正常加载到Hive元数据信息。

【解决方案】

方法1: 在配置spark-sql环境的时候,指定Hive元数据存放在HDFS的位置信息即可:

//配置metastore.uris  --这里设置成你自己的  "thrift://hadoop102:9083"
 .config("hive.metastore.uris","thrift://hadoop102:9083")
// 配置Hivewarehouse地址  "/user/hive/warehouse"
 .config("hive.metastore.warehouse.dir","/user/hive/warehouse")

方法2: 将 ${HIVE_HOME}/conf/hive-site.xml 文件,复制一份到当前项目工程下的 resources 目录下:

我这里是直接从服务器上面搂出来到win本地环境,然后再复制粘贴进去。粘贴后记得重启IDE,感觉很多童鞋的姿势不对,最好这样重启:

然后再运行就可以展示全部了:

发布于 2022-07-26 22:04

文章被以下专栏收录