[
https://issues.apache.org/jira/browse/PHOENIX-5140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
张延召 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: 张延召
> 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)