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)