我正在尝试在 yarn-client 模式下使用带有 Hive 的 DataFrames 运行一个基本的“Hello world”类型示例。我的代码是:
JavaSparkContext sc = new JavaSparkContext("yarn-client", "Test app"))
HiveContext sqlContext = new HiveContext(sc.sc());
sqlContext.sql("SELECT * FROM my_table").count();
这在本地模式下工作正常,但是当我在 yarn-client 模式下运行它时,我在驱动程序上得到了这个异常:
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");
}
有谁知道我做错了什么?
更新:我没有在本地或纱线集群模式下运行任何错误。此问题仅在纱线客户端模式下发生。