Impala 创建 Kudu 表报错:'kudu.master_addresses' 属性缺失

在使用 Impala 创建 Kudu 表时,可能会遇到以下报错信息:

java.sql.SQLException[Cloudera][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: Table property 'kudu.master_addresses' is required when the impalad startup flag -kudu_master_hosts is not used.
), Query: CREATE TABLE lx_testb7
(
id BIGINT,
name STRING,
PRIMARY KEY(id)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU.
	 at com.cloudera.impala.hivecommon.api.HS2Client.buildExceptionFromTStatusSqlState(Unknown Source)
	 at com.cloudera.impala.hivecommon.api.HS2Client.buildExceptionFromTStatus(Unknown Source)
	 at com.cloudera.impala.hivecommon.api.HS2Client.checkResponseStatus(Unknown Source)
	 at com.cloudera.impala.hivecommon.api.HS2Client.executeStatementInternal(Unknown Source)
	 at com.cloudera.impala.hivecommon.api.HS2Client.executeStatement(Unknown Source)
	 at com.cloudera.impala.hivecommon.dataengine.HiveJDBCNativeQueryExecutor.executeRowCountQueryHelper(Unknown Source)
	 at com.cloudera.impala.hivecommon.dataengine.HiveJDBCNativeQueryExecutor.execute(Unknown Source)
	 at com.cloudera.impala.jdbc.common.SPreparedStatement.executeWithParams(Unknown Source)
	 at com.cloudera.impala.jdbc.common.SPreparedStatement.execute(Unknown Source)
	 at com.startdt.simba.core.ImpalaRunner.run(ImpalaRunner.java:100)
	 at com.startdt.simba.core.ImpalaConnection.connect(ImpalaConnection.java:27)
	 at com.startdt.simba.transport.factory.SimbaConnectionFactory.putConnection(SimbaConnectionFactory.java:42)
	 at com.startdt.simba.core.ImpalaConnector.runPlan(ImpalaConnector.java:63)
	 at com.startdt.simba.core.ImpalaDispose.execPlan(ImpalaDispose.java:33)
	 at com.startdt.simba.portal.dispose.DisposeFactory$SendHandler.doWithEvent(DisposeFactory.java:188)
	 at com.startdt.simba.portal.dispose.DisposeFactory$SendHandler.run(DisposeFactory.java:176)
	 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
2023-05-30 14:55:14,549	admin@datasimba 作业执行结束......内容:报错信息为:Table property 'kudu.master_addresses' is required when the impalad startup flag -kudu_master_hosts is not used. 分析异常:当未使用impalad启动标志-kudu_master_hosts时,需要表属性'kudu.master_addresses'。

报错原因:

这个报错信息表明,在没有使用 impalad 启动标志 -kudu_master_hosts 的情况下,创建 Kudu 表时必须指定 kudu.master_addresses 属性。

解决方法:

  1. 在创建 Kudu 表时,使用 kudu.master_addresses 属性指定 Kudu Master 的地址。例如:
CREATE TABLE lx_testb7 (
  id BIGINT,
  name STRING,
  PRIMARY KEY(id)
)PARTITION BY HASH PARTITIONS 16
STORED AS KUDU
TBLPROPERTIES ('kudu.master_addresses'='kudu_master1:7051,kudu_master2:7051');
  1. 在启动 impalad 时使用 -kudu_master_hosts 标志指定 Kudu Master 的地址。例如:
./impala-daemon --config_file /etc/impala/impala.conf --start --role impalad -kudu_master_hosts kudu_master1:7051,kudu_master2:7051

注意事项:

  • 如果使用 -kudu_master_hosts 标志,则无需在创建表时指定 kudu.master_addresses 属性。
  • Kudu Master 的地址需要根据实际情况进行修改。

通过以上方法,可以解决 Impala 创建 Kudu 表时遇到的 kudu.master_addresses 属性缺失的问题。

Impala 创建 Kudu 表报错:'kudu.master_addresses' 属性缺失

原文地址: https://www.cveoy.top/t/topic/ol2E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录