[ 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)