You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "weizheng (JIRA)" <ji...@apache.org> on 2018/11/19 02:03:01 UTC
[jira] [Updated] (HIVE-20929) The method
HiveMetaStoreClient.getValidWriteIds(String fullTableName) failed to
execute.
[ https://issues.apache.org/jira/browse/HIVE-20929?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
weizheng updated HIVE-20929:
----------------------------
Description:
When I use the getValidWriteIds(String fullTableName) method of HiveMetaStoreClient to get writeIds, I get the errors:
{noformat}
Exception in thread "main" org.apache.thrift.protocol.TProtocolException: Required field 'validTxnList' is unset! Struct:GetValidWriteIdsRequest(fullTableNames:[default.w2], validTxnList:null)
at org.apache.hadoop.hive.metastore.api.GetValidWriteIdsRequest.validate(GetValidWriteIdsRequest.java:396)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.validate(ThriftHiveMetastore.java)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.write(ThriftHiveMetastore.java)
at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:71)
at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.send_get_valid_write_ids(ThriftHiveMetastore.java:5443)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_valid_write_ids(ThriftHiveMetastore.java:5435)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getValidWriteIds(HiveMetaStoreClient.java:2581)
at com.inspur.mutation.test.TableOperate.getRowsMap(TableOperate.java:521)
at com.inspur.procuder.GenerateData.main(GenerateData.java:65)
{noformat}
So I can only use the following methods instead:
{code:java}
//get writeIds
ValidTxnList txns = metaStoreClient.getValidTxns();
ValidWriteIdList writeIds;
List<String> tablesList = new ArrayList<String>();
tablesList.add(AcidUtils.getFullTableName(table.getDbName(), table.getTableName()));
List<TableValidWriteIds> writeIdList = metaStoreClient.getValidWriteIds(tablesList,txns.toString());
writeIds = TxnUtils.createValidReaderWriteIdList(writeIdList.get(0));
{code}
was:
When I use the getValidWriteIds(String fullTableName) method of HiveMetaStoreClient to get writeIds, I get the errors:
Exception in thread "main" org.apache.thrift.protocol.TProtocolException: Required field 'validTxnList' is unset! Struct:GetValidWriteIdsRequest(fullTableNames:[default.w2], validTxnList:null)
at org.apache.hadoop.hive.metastore.api.GetValidWriteIdsRequest.validate(GetValidWriteIdsRequest.java:396)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.validate(ThriftHiveMetastore.java)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.write(ThriftHiveMetastore.java)
at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:71)
at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.send_get_valid_write_ids(ThriftHiveMetastore.java:5443)
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_valid_write_ids(ThriftHiveMetastore.java:5435)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getValidWriteIds(HiveMetaStoreClient.java:2581)
at com.inspur.mutation.test.TableOperate.getRowsMap(TableOperate.java:521)
at com.inspur.procuder.GenerateData.main(GenerateData.java:65)
So I can only use the following methods instead:
ValidWriteIdList writeIds;
tablesList.add(AcidUtils.getFullTableName(table.getDbName(), table.getTableName()));
List<TableValidWriteIds> writeIdList = metaStoreClient.getValidWriteIds(tablesList,txns.toString());
writeIds = TxnUtils.createValidReaderWriteIdList(writeIdList.get(0));
> The method HiveMetaStoreClient.getValidWriteIds(String fullTableName) failed to execute.
> ----------------------------------------------------------------------------------------
>
> Key: HIVE-20929
> URL: https://issues.apache.org/jira/browse/HIVE-20929
> Project: Hive
> Issue Type: Bug
> Components: Standalone Metastore
> Affects Versions: 3.1.0
> Environment: hadoop3.1.0
> hive3.1.0
> Reporter: weizheng
> Assignee: weizheng
> Priority: Major
>
> When I use the getValidWriteIds(String fullTableName) method of HiveMetaStoreClient to get writeIds, I get the errors:
> {noformat}
> Exception in thread "main" org.apache.thrift.protocol.TProtocolException: Required field 'validTxnList' is unset! Struct:GetValidWriteIdsRequest(fullTableNames:[default.w2], validTxnList:null)
> at org.apache.hadoop.hive.metastore.api.GetValidWriteIdsRequest.validate(GetValidWriteIdsRequest.java:396)
> at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.validate(ThriftHiveMetastore.java)
> at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java)
> at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java)
> at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.write(ThriftHiveMetastore.java)
> at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:71)
> at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62)
> at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.send_get_valid_write_ids(ThriftHiveMetastore.java:5443)
> at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_valid_write_ids(ThriftHiveMetastore.java:5435)
> at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getValidWriteIds(HiveMetaStoreClient.java:2581)
> at com.inspur.mutation.test.TableOperate.getRowsMap(TableOperate.java:521)
> at com.inspur.procuder.GenerateData.main(GenerateData.java:65)
> {noformat}
> So I can only use the following methods instead:
> {code:java}
> //get writeIds
> ValidTxnList txns = metaStoreClient.getValidTxns();
> ValidWriteIdList writeIds;
> List<String> tablesList = new ArrayList<String>();
> tablesList.add(AcidUtils.getFullTableName(table.getDbName(), table.getTableName()));
> List<TableValidWriteIds> writeIdList = metaStoreClient.getValidWriteIds(tablesList,txns.toString());
> writeIds = TxnUtils.createValidReaderWriteIdList(writeIdList.get(0));
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)