gpt4 book ai didi

java - 通过JDBC访问Cloudera Hive时如何设置执行引擎spark

转载 作者:行者123 更新时间:2023-11-30 05:39:01 27 4
gpt4 key购买 nike

我无法在通过 jdbc 执行的脚本中设置 hive 的执行引擎。当通过hue web前端执行相同的脚本时,脚本会注意到我正在尝试将执行引擎设置为spark,但不是通过jdbc

List<String> result = hiveTemplate.query(script);

脚本示例

set hive.execution.engine=spark;

SELECT * from ......

我尝试在类路径中执行实际脚本,我还尝试通过 jdbc 发送表示 sql 脚本的字符串,如上所述。

我还尝试在数据源 connectionProperties 中包含以下内容以及创建 hiveTemplate 的工厂类:

public static HiveTemplate createHiveTemplate(HiveExecutionEngine engine) {

Properties props=new Properties();

switch (engine) {
case MAP_REDUCE:
props.setProperty("hive.execution.engine", "mr");
props.setProperty("mapreduce.map.memory.mb", "16000");
props.setProperty("mapreduce.map.java.opts", "Xmx7200m");
props.setProperty("mapreduce.reduce.memory.mb", "16000");
props.setProperty("mapreduce.reduce.java.opts", "Xmx7200m");
break;
case SPARK:
props.setProperty("hive.execution.engine", "spark");
break;
default:
throw new NotImplementedException();
}

datasource.setConnectionProperties(props);
return new HiveTemplate(() -> {
return new HiveClient(datasource);
});
}

以下链接显示了设置执行引擎的文档: https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

set hive.execution.engine=spark;

我希望脚本通过 yarn 中的 Spark 引擎执行,而不是使用正在发生的情况的 MapReduce。我可以通过查看错误消息并通过 Cloudera Manager 查看作业历史记录来确认应用了错误的引擎

有人成功地通过 jdbc 执行 hiveql 脚本来使用 Spark 引擎吗?

最佳答案

此问题的更新:

如果将配置属性添加到驱动程序 URL,似乎可以工作

jdbc:hive2://<ip>:10000?hive.execution.engine=spark

这仍然不是理想状态,而是一个解决方案:

如果有人通过 java 配置完成了此操作,我很高兴收到您的来信

关于java - 通过JDBC访问Cloudera Hive时如何设置执行引擎spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56061762/

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