phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From 张延召 (JIRA) <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-5140) Index Tool with schema table undefined
Date Thu, 14 Feb 2019 08:59:00 GMT

    [ https://issues.apache.org/jira/browse/PHOENIX-5140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16768020#comment-16768020
] 

张延召 commented on PHOENIX-5140:
------------------------------

If my schema is default, it will work if I create an asynchronous local index, or if I use
a custom schema, it will work if I create an asynchronous global index, but when I use a custom
schema, it will throw an exception if I create an asynchronous local index,Why is it happen?

> Index Tool with schema table undefined
> --------------------------------------
>
>                 Key: PHOENIX-5140
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5140
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>         Environment: My HDP version is 3.0.0.0, HBase version is 2.0.0,phoenix
version is 5.0.0 and hadoop version is 3.1.0
>            Reporter: 张延召
>            Priority: Major
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> First I create the table and insert the data:
> create table DMP.DMP_INDEX_TEST2 (id varchar not null primary key,name varchar,age varchar);
>  upsert into DMP.DMP_INDEX_TEST2 values('id01','name01','age01');
> The asynchronous index is then created:
> create local index if not exists TMP_INDEX_DMP_TEST2 on DMP.DMP_INDEX_TEST2 (name) ASYNC;
> Because kerberos is enabled,So I need kinit HBase principal first,Then execute the following
command;
> HADOOP_CLASSPATH="/etc/hbase/conf" hadoop jar /usr/hdp/3.0.0.0-1634/phoenix/phoenix-client.jar
org.apache.phoenix.mapreduce.index.IndexTool --schema DMP --data-table DMP_INDEX_TEST2 --index-table
TMP_INDEX_DMP_TEST2 --output-path /hbase-backup2
>  
> But I got the following error:
> Error: java.lang.RuntimeException: org.apache.phoenix.schema.TableNotFoundException:
ERROR 1012 (42M03): Table undefined. tableName=DMP.DMP_INDEX_TEST2
>  at org.apache.phoenix.mapreduce.index.PhoenixIndexImportMapper.map(PhoenixIndexImportMapper.java:124)
>  at org.apache.phoenix.mapreduce.index.PhoenixIndexImportMapper.map(PhoenixIndexImportMapper.java:50)
>  at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
>  at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:799)
>  at org.apache.hadoop.mapred.MapTask.run(MapTask.java:347)
>  at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:174)
>  at java.security.AccessController.doPrivileged(Native Method)
>  at javax.security.auth.Subject.doAs(Subject.java:422)
>  at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1688)
>  at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:168)
>  Caused by: org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table
undefined. tableName=DMP.DMP_INDEX_TEST2
>  at org.apache.phoenix.query.ConnectionQueryServicesImpl.getTableRegionLocation(ConnectionQueryServicesImpl.java:4544)
>  at org.apache.phoenix.query.DelegateConnectionQueryServices.getTableRegionLocation(DelegateConnectionQueryServices.java:312)
>  at org.apache.phoenix.compile.UpsertCompiler.setValues(UpsertCompiler.java:163)
>  at org.apache.phoenix.compile.UpsertCompiler.access$500(UpsertCompiler.java:118)
>  at org.apache.phoenix.compile.UpsertCompiler$UpsertValuesMutationPlan.execute(UpsertCompiler.java:1202)
>  at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:408)
>  at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
>  at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>  at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:390)
>  at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
>  at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:173)
>  at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:183)
>  at org.apache.phoenix.mapreduce.index.PhoenixIndexImportMapper.map(PhoenixIndexImportMapper.java:103)
>  ... 9 more
> I can query this table and have access to it,It works well:
> select * from DMP.DMP_INDEX_TEST2;
>  select * from DMP.TMP_INDEX_DMP_TEST2;
>  drop table DMP.DMP_INDEX_TEST2;
>  
> But why did my MR task make this mistake? Any Suggestions from anyone



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message