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:08:01 UTC
[jira] [Comment Edited] (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:comment-tabpanel&focusedCommentId=16691157#comment-16691157 ]
weizheng edited comment on HIVE-20929 at 11/19/18 2:07 AM:
-----------------------------------------------------------
If the parameter validTxnList is not passed,the default value is null.
The following is the implementation of *{color:#ff0000}HiveMetaStoreClient.getValidWriteIds(String fullTableName).{color}*
{code:java}
public ValidWriteIdList getValidWriteIds(String fullTableName) throws TException {
GetValidWriteIdsRequest rqst = new GetValidWriteIdsRequest(Collections.singletonList(fullTableName), null); //validTxnList is set to NULL
GetValidWriteIdsResponse validWriteIds = client.get_valid_write_ids(rqst);
return TxnUtils.createValidReaderWriteIdList(validWriteIds.getTblValidWriteIds().get(0));
}
{code}
so I got errors that {color:#ff0000}Required field 'validTxnList' is unset!{color}
was (Author: weizheng):
If the parameter validTxnList is not passed,the default value is null.
The following is the implementation of *{color:#FF0000}HiveMetaStoreClient.getValidWriteIds(String fullTableName).{color}*
public ValidWriteIdList getValidWriteIds(String fullTableName) throws TException {
GetValidWriteIdsRequest rqst = new GetValidWriteIdsRequest(Collections.singletonList(fullTableName), *{color:#FF0000}null{color}*);
GetValidWriteIdsResponse validWriteIds = client.get_valid_write_ids(rqst);
return TxnUtils.createValidReaderWriteIdList(validWriteIds.getTblValidWriteIds().get(0));
}
so I got errors that {color:#FF0000}Required field 'validTxnList' is unset!{color}
> 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)