Kylin的保存查询SQL时提示kylin_metadata2_user类似的表不存在
来源:互联网 发布:微微一笑的网络收视率 编辑:程序博客网 时间:2024/05/17 23:22
之前在使用Kylin的Insight中的查询保存功能时,如下:
但是单击Save时,一直没有反应,查看日志会出现如下的错误信息:
2016-06-03 11:15:20,351 INFO [pool-4-thread-1] threadpool.DefaultScheduler:106 : Job Fetcher: 0 running, 0 actual running, 0 ready, 64 others2016-06-03 11:15:31,728 ERROR [http-bio-7070-exec-7] controller.BasicController:44 : org.apache.hadoop.hbase.TableNotFoundException: Table 'kylin_metadata2_user' was not found, got: kylin_metadata2at 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.invokeat 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.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)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:195)at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:266)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:745)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:745)
根据错误提示,我们下载Kylin的源码,找到QueryService.java文件,所在目录如下:
apache-kylin-1.5.2\server\src\main\java\org\apache\kylin\rest\service
找到如下方法:
public static finalString USER_QUERY_FAMILY = "q";private staticfinal String DEFAULT_TABLE_PREFIX = "kylin_metadata";private staticfinal String USER_TABLE_NAME = "_user";private staticfinal String USER_QUERY_COLUMN = "c"; public voidsaveQuery(final String creator, final Query query) throws IOException { List<Query> queries =getQueries(creator); queries.add(query); Query[] queryArray = newQuery[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); }}
可以看出Kylin在使用保存查询功能时需要往HBase的表kylin_metadata2_user里面插入数据,但是表在Kylin使用过程中不存在。
但是这个表如果我们创建就必须知道列簇,从代码中我们可以获取:
public static finalString USER_QUERY_FAMILY = "q";
所以我们登录HBase创建表就可以了:
hbase(main):001:0> create'kylin_metadata2_user','q'
0 row(s) in 1.5880 seconds
=> Hbase::Table - kylin_metadata2_user
然后我们再执行Save就可以了:
0 0
- Kylin的保存查询SQL时提示kylin_metadata2_user类似的表不存在
- SQL查询的时候能查询到结果,但是将SQL语句改为存储过程的时候就提示表不存在
- 仓管做材料出库单的时候,保存时提示“辅助计量单位***不正确!库存单位***不存在!”
- 关于连接SQL Server 2000时提示“SQL Server不存在或拒绝访问”的处理
- mysql数据库show tables 显示表名,但是查询的时候却提示此表不存在
- ORA-00942 采用PowerDesigner生成的表 查询提示不存在,或无法修改字段
- oracle导入时提示表空间不存在的问题
- 类似百度的搜索提示框,数据库中查询关键字
- mysql 查询表出错 提示表不存在
- Sql查询语句中,添加表中不存在的列并设定列的固定值
- 新增金蝶K/3 V10.4 BOS单据保存时提示:“拒绝的权限”或“远程服务器不存在”而无法保存业务对象的问题
- Oracle表明明存在SQL查询数据提示表不存在异常
- SQL查询一个表中另外一个表不存在的数据。
- sql查询存在一张表而不存在另外一张表的三种方法
- Kylin存储和查询的分片问题
- 解析:使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
- 使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
- 在DataSet实现类似sql语句的查询
- 基于稀疏表示的图像超分辨率《Image Super-Resolution Via Sparse Representation》
- Linux共享中断号
- 利用NPOI组件读写XLSX文件
- selenium运行用例打印日志及错误截图
- TextView设置下划线并拨打电话
- Kylin的保存查询SQL时提示kylin_metadata2_user类似的表不存在
- Could not find a valid gem 'cocoapods' (>= 0), here is why: Unable to download data from h
- XML基础——SAX解析
- cocos2d-x中修改窗口背景色
- Hello World!
- vs添加lib等依赖项
- 怎样用捷速PDF编辑器修改PDF文档
- 字符统计
- apache设置不同端口监听不同目录