gpt4 book ai didi

java - 在yarn-client模式下使用Spark DataFrames查询Hive表导致ClassNotFoundException

转载 作者:行者123 更新时间:2023-12-01 10:44:16 25 4
gpt4 key购买 nike

我正在尝试在 yarn 客户端模式下使用 DataFrames 和 Hive 运行一个基本的“Hello world”类型示例。我的代码是:

JavaSparkContext sc = new JavaSparkContext("yarn-client", "Test app"))
HiveContext sqlContext = new HiveContext(sc.sc());
sqlContext.sql("SELECT * FROM my_table").count();

这在本地模式下工作正常,但是当我在 yarn 客户端模式下运行它时,我在驱动程序上遇到此异常:

java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.plan.TableDesc

我已经使用以下方法确认了缺少的类位于驱动程序类路径上:

try {
Class.forName("org.apache.hadoop.hive.ql.plan.TableDesc");
System.out.println("On classpath");
} catch (ClassNotFoundException e) {
System.out.println("Not found on classpath");
}

有人知道我做错了什么吗?

更新:我在本地或 yarn 集群模式下运行时没有遇到任何错误。此问题仅发生在yarn-client 模式下。

最佳答案

您需要提供 Hive 客户端库以及代码。在构建(maven、gradle 或 SBT)中使用 allinone、shading 或 fatjars 可能是最简单的

关于java - 在yarn-client模式下使用Spark DataFrames查询Hive表导致ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com