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)