You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "jiangshouzhuang (JIRA)" <ji...@apache.org> on 2016/08/03 09:24:21 UTC

[jira] [Reopened] (KYLIN-1760) Save query hits org.apache.hadoop.hbase.TableNotFoundException: kylin_metadata_user

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

jiangshouzhuang reopened KYLIN-1760:
------------------------------------

I'm very happy that you resolve the bug which cannot save queries by Web GUI.
But when I query the htable 'kylin_metadata_user' in release 1.5.3, I find that 'kylin_metadata_user' column family is 'a', but it need 'q'.

hbase(main):004:0> desc 'kylin_metadata_user'
Table kylin_metadata_user is ENABLED                                                                                                                                   
kylin_metadata_user, {TABLE_ATTRIBUTES => {METADATA => {'UUID' => '41e483de-7e3e-4374-9b0f-2f361841aba2'}}                                                             
COLUMN FAMILIES DESCRIPTION                                                                                                                                            
{NAME => 'a', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREV
ER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'true', BLOCKCACHE => 'true'}                                                                   
1 row(s) in 0.0520 seconds

hbase(main):005:0> alter 'kylin_metadata_user' ,{ NAME => 'q', VERSIONS => '1' }
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 3.0320 seconds

When I add then column family 'q', I can use "http://ipaddress:7070/kylin/query" to save queries.

hbase(main):006:0> scan 'kylin_metadata_user'
ROW                                        COLUMN+CELL                                                                                                                 
 ADMIN                                     column=q:c, timestamp=1470211633112, value=[{"name":"s_1","project":"myproject_pvuv","sql":"select * from STREAMING_SALES_TA
                                           BLE ","description":null,"id":"-932856725"}]                                                                                
1 row(s) in 0.0480 seconds

The source code is location in 'apache-kylin-1.5.3\server-base\src\main\java\org\apache\kylin\rest\service\QueryService.java',as following:

public static final String USER_QUERY_FAMILY = "q";

public void saveQuery(final String creator, final Query query) throws IOException {
        List<Query> queries = getQueries(creator);
        queries.add(query);
        Query[] queryArray = new Query[queries.size()];

        byte[] bytes = querySerializer.serialize(queries.toArray(queryArray));
        HTableInterface htable = null;
        try {
            htable = HBaseConnection.get(hbaseUrl).getTable(userTableName);
            Put put = new Put(Bytes.toBytes(creator));
            put.add(Bytes.toBytes(USER_QUERY_FAMILY), Bytes.toBytes(USER_QUERY_COLUMN), bytes);

            htable.put(put);
            htable.flushCommits();
        } finally {
            IOUtils.closeQuietly(htable);
        }
    }
        

I hope that you can take a little time to solve the bug. Thank you very much.

> Save query hits org.apache.hadoop.hbase.TableNotFoundException: kylin_metadata_user
> -----------------------------------------------------------------------------------
>
>                 Key: KYLIN-1760
>                 URL: https://issues.apache.org/jira/browse/KYLIN-1760
>             Project: Kylin
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: v1.5.1
>            Reporter: jiangshouzhuang
>            Assignee: liyang
>             Fix For: v1.5.3
>
>
> When I use "http://ipaddress:7070/kylin/query" to save queries, I notice the log file kylin.log which report some errors :
> org.apache.hadoop.hbase.TableNotFoundException: Table 'kylin_metadata_user' was not found, got: kylin_metadata.
> 	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1275)
> 	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1156)
> 	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1140)
> 	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1097)
> 	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getRegionLocation(ConnectionManager.java:932)
> 	at org.apache.hadoop.hbase.client.HRegionLocator.getRegionLocation(HRegionLocator.java:83)
> 	at org.apache.hadoop.hbase.client.RegionServerCallable.prepare(RegionServerCallable.java:79)
> 	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:124)
> 	at org.apache.hadoop.hbase.client.HTable.get(HTable.java:889)
> 	at org.apache.hadoop.hbase.client.HTable.get(HTable.java:855)
> 	at org.apache.kylin.rest.service.QueryService.getQueries(QueryService.java:189)
> 	at org.apache.kylin.rest.service.QueryService.saveQuery(QueryService.java:129)
> 	at org.apache.kylin.rest.service.QueryService$$FastClassByCGLIB$$4957273f.invoke(<generated>)
> 	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> 	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
> 	at org.apache.kylin.rest.service.QueryService$$EnhancerByCGLIB$$67382972.saveQuery(<generated>)
> 	at org.apache.kylin.rest.controller.QueryController.saveQuery(QueryController.java:110)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
> 	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
> 	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
> 	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
> 	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
> By anaylzing the source codes of Kylin, I see the file apache-kylin-1.5.2\server\src\main\java\org\apache\kylin\rest\service\QueryService.java, so I create the table "kylin_metadata_user" in the HBase.
> hbase(main):001:0> create 'kylin_metadata_user','q'
> 0 row(s) in 1.5880 seconds
> => Hbase::Table - kylin_metadata_user
> But I think that it maybe a bug. Thank you.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)