hive on spark 编译问题

hive on spark中遇到了一个很奇怪的问题,hive3.1.2中 在编译的时候会报错

img


我跟着这个报错先去看了hive的源码

img


这个源码显示就是AuthFilter.class这个类FilterHolder的构造器不支持对不对?我再去看了看FilterHolder这个类

img


很明显FilterHolder这个类的构造器是支持AuthFilter.class这个类型的,但是编译时候一直识别不了,为了以防万一,我又去看了AuthFilter这个类是不是Filter的子类

img

img


就很奇怪了,确实是Filter的子类,大家看看可能是哪里有问题啊?

Main.java 中的
  FilterHolder authFilter = new FilterHolder(AuthFilter.class);
改成
    AuthFilter filter = new AuthFilter();
    FilterHolder authFilter = new FilterHolder((Filter)filter);

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个错误似乎与 Maven 编译过程中的依赖项有关,特别是与 Apache Hadoop 相关的依赖项。可能有几个解决方案可以尝试:

  1. 确保在编译 Hive 时使用的所有依赖项都与 Hive 版本兼容。尝试使用 Maven 清理命令,然后再次编译 Hive。

  2. 尝试使用不同的 Maven 版本,有时这可以解决 Maven 编译错误。

  3. 检查 Maven 的设置,确保正确配置了环境变量和路径。可以尝试重新安装 Maven 或更改 Maven 的配置。

  4. 如果使用了特定版本的 Apache Hadoop,请确保在编译 Hive 时使用与该版本兼容的 Apache Hadoop 依赖项。也可以尝试更新 Apache Hadoop 依赖项,看看是否可以解决问题。

  5. 尝试使用 Maven 的 -e 和 -X 开关来获取更详细的调试信息,以便更好地理解错误原因。

希望这些解决方案可以帮助您解决问题。