[ 
https://issues.apache.org/jira/browse/PHOENIX-5140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

MariaCarrie updated PHOENIX-5140:
---------------------------------
    Description: 
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?

  was:
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


> TableNotFoundException occurs when we create local asynchronous index
> ---------------------------------------------------------------------
>
>                 Key: PHOENIX-5140
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5140
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>         Environment: > HDP : 3.0.0.0, HBase : 2.0.0,phoenix : 5.0.0 and 
> hadoop : 3.1.0
>            Reporter: MariaCarrie
>            Priority: Major
>              Labels: IndexTool, localIndex, tableUndefined
>   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)

Reply via email to