1, I have no idea, there I think should be no such issue ~ 2, btw, is it easy to fix it? if it's hard to resolve it, I will make a walkaround way to update the cube state after the cube is built successfully 3, as I mentioned above, there seems to be also some problem with the sync feature when "FRESH" a cube
2015-05-08 17:14 GMT+08:00 Shi, Shaofeng <[email protected]>: > Problem reproduced in my sandbox; Dong, is there already a JIRA for this > problem? > > On 5/8/15, 4:32 PM, "dong wang" <[email protected]> wrote: > > >Thanks shaofeng, I set kylin.rest.servers=localhost:8081,localhost:8082, > >but final String[] nodes = > >KylinConfig.getInstanceFromEnv().getRestServers(); only returns the first > >element "localhost:8081" for nodes, it's weird and incorrect, thus, I want > >to look into the code final String[] nodes = > >KylinConfig.getInstanceFromEnv().getRestServers(); but after the 1st this > >morning, I cannot hit this breakpoint anymore later~ > > > >2015-05-08 15:41 GMT+08:00 Shi, Shaofeng <[email protected]>: > > > >> I’m trying to reproduce in my sandbox, will let you know if have any > >> findings. > >> > >> On 5/8/15, 3:23 PM, "dong wang" <[email protected]> wrote: > >> > >> >hi, > >> >when I debug the following java codes , the breakpoint can be hit > >>"final > >> >BroadcastEvent broadcastEvent = broadcastEvents.takeFirst();" but, it > >> >cannot hit the bp of the line "final String[] nodes = > >> >KylinConfig.getInstanceFromEnv().getRestServers();", do anyone how to > >> >make it hit? > >> > > >> > private Broadcaster() { > >> > Executors.newSingleThreadExecutor().execute(new Runnable() { > >> > @Override > >> > public void run() { > >> > final String[] nodes = > >> >KylinConfig.getInstanceFromEnv().getRestServers(); > >> > if (nodes == null || nodes.length < 1) {//TODO if the > >>node > >> >count is greater than 1, it means it is a cluster > >> > logger.warn("There is no available rest server; > >>check > >> >the 'kylin.rest.servers' config"); > >> > return; > >> > } > >> > final List<RestClient> restClients = > >>Lists.newArrayList(); > >> > for (String node : nodes) { > >> > restClients.add(new RestClient(node)); > >> > } > >> > final ExecutorService wipingCachePool = > >> >Executors.newFixedThreadPool(restClients.size()); > >> > while (true) { > >> > try { > >> > final BroadcastEvent broadcastEvent = > >> >broadcastEvents.takeFirst(); > >> > > >> >2015-05-07 21:07 GMT+08:00 dong wang <[email protected]>: > >> > > >> >> @qianhao, > >> >> 1, I will debug the code if available > >> >> 2, just now, as observed, after "REFRESH" a cube, even though I click > >> >> "Reload Metadata" under "Admin" tab on the WEB of the "QUERY" kylin > >> >> instances, the cube status cannot be syncd with the "ALL" kylin > >> >> instance(but if restarting the "QUERY" kylin instances, "QUERY" > >> >>instances > >> >> can sync the FRESH cube result info), another thing is that it works > >>OK > >> >>for > >> >> "BUILD" a cube if just reloading the metadata without restarting the > >> >> instance, thus,I guess, the above 2 correct URL put methods will not > >> >>work > >> >> for "REFERSH" as well > >> >> > >> >> 2015-05-07 20:17 GMT+08:00 Zhou, Qianhao <[email protected]>: > >> >> > >> >>> Thanks for the research, the root cause should be the wrong URL > >> >>>redirect > >> >>> > >> >>> 2015年5月7日 18:59于 dong wang <[email protected]>写道: > >> >>> @qianzhao, as tested, another discovery is that if I use the URL > >>like: > >> >>> > >> >>> > >> >>> > >> > http://test.abc.com:8082/kylin/api/cache/cube/lbs_map_active_user_fact/u > >> >>>pdate > >> >>> , > >> >>> the cube status of the "QUERY" kylin instance also works > >>SUCCESSFULLY > >> >>> > >> >>> thus, the problem should be something wrong with the communication > >> >>>between > >> >>> "ALL" mode instance and "QUERY" mode instances > >> >>> > >> >>> 2015-05-07 18:12 GMT+08:00 dong wang <[email protected]>: > >> >>> > >> >>> > @qianhao, @shaofeng, > >> >>> > > >> >>> > today, I tried to mockup a PUT request as you mentioned above with > >> >>>the > >> >>> > following different URLs: > >> >>> > 1, http://test.abc.com:8082/cube/lbs_map_new_user_fact/update > >> >>> > > >> >>> > nothing happened, even more, no log information received in the > >>kylin > >> >>> > instance log file deployed with port 8082 > >> >>> > > >> >>> > 2, http://test.abc.com:8082/kylin/api/cache/all/all/update > >> >>> > > >> >>> > with this API, It works OK, the cube status is flushed > >>SUCCESSFULLY, > >> >>> log > >> >>> > information received as shown below: > >> >>> > > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,469][INFO][org.apache.kylin.rest.controller.CacheController.w > >>>>>ip > >> >>>eCache(CacheController.java: > >> >>> > 64)] - wipe cache type: ALL event:UPDATE name:all > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,488][DEBUG][org.apache.kylin.metadata.MetadataManager.reloadA > >>>>>ll > >> >>>SourceTable(MetadataManager. > >> >>> > java:244)] - Reloading SourceTable from folder > >> >>> > kylin_metadata(key='/table')@kylin_metadata@hbase > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,533][DEBUG][org.apache.kylin.metadata.MetadataManager.reloadA > >>>>>ll > >> >>>SourceTable(MetadataManager. > >> >>> > java:253)] - Loaded 8 SourceTable(s) > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,534][DEBUG][org.apache.kylin.metadata.MetadataManager.reloadA > >>>>>ll > >> >>>SourceTableExd(MetadataManag > >> >>> > er.java:201)] - Reloading SourceTable exd info from folder > >> >>> > kylin_metadata(key='/table_exd')@kylin_metadata@hbase > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,562][DEBUG][org.apache.kylin.metadata.MetadataManager.reloadA > >>>>>ll > >> >>>SourceTableExd(MetadataManag > >> >>> > er.java:210)] - Loaded 8 SourceTable EXD(s) > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,562][DEBUG][org.apache.kylin.metadata.MetadataManager.reloadA > >>>>>ll > >> >>>DataModel(MetadataManager.ja > >> >>> > va:291)] - Reloading DataModel from folder > >> >>> > kylin_metadata(key='/model_desc')@kylin_metadata@hbase > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,599][DEBUG][org.apache.kylin.metadata.MetadataManager.reloadA > >>>>>ll > >> >>>DataModel(MetadataManager.ja > >> >>> > va:305)] - Loaded 8 DataModel(s) > >> >>> > [http-bio-8082-exec-7]:[2015-05-07 > >> >>> > > >> >>> > >> > >>>>>17:54:57,604][INFO][org.apache.kylin.rest.service.BasicService.resetOL > >>>>>AP > >> >>>DataSources(BasicService.jav > >> >>> > a:90)] - resetOLAPDataSources is called. > >> >>> > > >> >>> > 3, currently, since we deploy 3 kylin instance on the same machine > >> >>>with > >> >>> > different ports, and I set export KYLIN_HOME=/path_to_kylin at the > >> >>>very > >> >>> > beginning of the file bin/kylin.sh since we cannot set a global > >>env > >> >>> > KYLIN_HOME > >> >>> > > >> >>> > 2015-05-07 17:50 GMT+08:00 Tao Wong <[email protected]>: > >> >>> > > >> >>> >> Cube status on query mode instance still can not change > >> >>>automatically. > >> >>> >> > >> >>> >> the all mode node seem to broadcast the query mode nodes,however > >> >>>,the > >> >>> >> query > >> >>> >> node run with error as above and below: > >> >>> >> > >> >>> >> Caused by: java.lang.ClassNotFoundException: > >> >>> >> org.apache.kylin.query.schema.OLAPSchemaFactory > >> >>> >> 733 at java.net.URLClassLoader$1.run(URLClassLoader.java:366) > >> >>> >> 734 at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > >> >>> >> 735 at java.security.AccessController.doPrivileged(Native > >> >>>Method) > >> >>> >> 736 at > >> >>>java.net.URLClassLoader.findClass(URLClassLoader.java:354) > >> >>> >> 737 at java.lang.ClassLoader.loadClass(ClassLoader.java:425) > >> >>> >> 738 at > >> >>> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) > >> >>> >> 739 at java.lang.ClassLoader.loadClass(ClassLoader.java:358) > >> >>> >> 740 at java.lang.Class.forName0(Native Method) > >> >>> >> 741 at java.lang.Class.forName(Class.java:191) > >> >>> >> 742 at > >> >>> >> > >>org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:209) > >> >>> >> > >> >>> >> 2015-05-07 14:17 GMT+08:00 Tao Wong <[email protected]>: > >> >>> >> > >> >>> >> > After I build a new segment. the kylin.log on the query mode > >>node. > >> >>> >> > > >> >>> >> > kylin.log: > >> >>> >> > > >> >>> >> > [http-bio-8082-exec-1]:[2015-05-07 > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>13:53:13,681][DEBUG][org.apache.kylin.rest.service.AdminService.getCon > >>>>>fi > >> >>>gAsString(AdminService > >> >>> >> > .java:91)] - Get Kylin Runtime Config > >> >>> >> > 3261 [http-bio-8082-exec-1]:[2015-05-07 > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>13:56:08,971][INFO][org.apache.kylin.metadata.project.ProjectL2Cache.l > >>>>>oa > >> >>>dCache(ProjectL2Cache. > >> >>> >> > java:152)] - Loading L2 project cache for user > >> >>> >> > 3262 [http-bio-8082-exec-1]:[2015-05-07 > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>13:56:08,974][INFO][org.apache.kylin.rest.controller.TableController.g > >>>>>et > >> >>>HiveTables(TableContro > >> >>> >> > ller.java:74)] - Return all table metadata in 3 seconds > >> >>> >> > 3263 [http-bio-8082-exec-4]:[2015-05-07 > >> >>> >> > >> >>> > >> > >>>>>13:59:03,657][ERROR][org.apache.kylin.rest.controller.BasicController. > >>>>>ha > >> >>>ndleError(BasicControl > >> >>> >> > ler.java:52)] - > >> >>> >> > 3264 java.lang.RuntimeException: Error instantiating > >> >>> >> > JsonCustomSchema(name=USER) > >> >>> >> > 3265 at > >> >>> >> > > >>org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:217) > >> >>> >> > 3266 at > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>org.apache.calcite.model.JsonCustomSchema.accept(JsonCustomSchema.java > >>>>>:3 > >> >>>6) > >> >>> >> > 3267 at > >> >>> >> > > >>org.apache.calcite.model.ModelHandler.visit(ModelHandler.java:144) > >> >>> >> > 3268 at > >> >>> >> > > >>org.apache.calcite.model.ModelHandler.<init>(ModelHandler.java:87) > >> >>> >> > 3269 at > >> >>> >> > > >>org.apache.calcite.jdbc.Driver$1.onConnectionInit(Driver.java:97) > >> >>> >> > 3270 at > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriv > >>>>>er > >> >>>.java:145) > >> >>> >> > 3271 at > >> >>> java.sql.DriverManager.getConnection(DriverManager.java:571) > >> >>> >> > 3272 at > >> >>> java.sql.DriverManager.getConnection(DriverManager.java:187) > >> >>> >> > 3273 at > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>org.springframework.jdbc.datasource.DriverManagerDataSource.getConnect > >>>>>io > >> >>>nFromDriverManager(DriverManagerDataSource.java:17 > >> >>> >> > 3) > >> >>> >> > 3274 at > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>org.springframework.jdbc.datasource.DriverManagerDataSource.getConnect > >>>>>io > >> >>>nFromDriver(DriverManagerDataSource.java:164) > >> >>> >> > 3275 at > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getC > >>>>>on > >> >>>nectionFromDriver(AbstractDriverBasedDataSource.ja > >> >>> >> > va:149) > >> >>> >> > 3276 at > >> >>> >> > > >> >>> >> > >> >>> > >> > >>>>>org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getC > >>>>>on > >> >>>nection(AbstractDriverBasedDataSource.java:119) > >> >>> >> > > >> >>> >> > 2015-05-07 9:15 GMT+08:00 Shi, Shaofeng <[email protected]>: > >> >>> >> > > >> >>> >> >> Dong, you can download a build directly from > >> >>> >> >> https://kylin.incubator.apache.org/download/; > >> >>> >> >> > >> >>> >> >> On 5/7/15, 7:26 AM, "周千昊" <[email protected]> wrote: > >> >>> >> >> > >> >>> >> >> >Hi, dong > >> >>> >> >> > #1 you don't have to add "http://" prefix for the > >> >>> >> >> kylin.rest.servers > >> >>> >> >> >config, > >> >>> >> >> > according to the log, the Broadcaster event has > >>been > >> >>> >> >> >successfully > >> >>> >> >> >created, however there maybe some network issues when "ALL" > >> >>>server > >> >>> >> trying > >> >>> >> >> >to reach "QUERY" server, can you try to mockup a PUT request > >> >>>like > >> >>> >> >> >http://test.abc.com:8081/cube/lbs_map_new_user_fact/update > to > >> >>>see > >> >>> if > >> >>> >> the > >> >>> >> >> >network is OK? > >> >>> >> >> > #2 yes you can git clone the "0.7.1-staging" branch to > >> >>>build > >> >>> the > >> >>> >> >> >binary > >> >>> >> >> > > >> >>> >> >> >dong wang <[email protected]>于2015年5月7日周四 上午12:10写道: > >> >>> >> >> > > >> >>> >> >> >> 1, please help to review the above 2 response first > >> >>> >> >> >> 2, in kylin.properties,currently we set kylin.rest.servers= > >> >>> >> >> >> test.abc.com:8080 > >> >>> >> >> >> ,test.abc.com:8081,test.abc.com:8082 and > >>test.abc.com:8080 > >> >>>are > >> >>> >> the > >> >>> >> >> >>"ALL" > >> >>> >> >> >> instance, the other 2 are the "QUERY" kylin instances > >> >>> >> >> >> should we set with the 'http://' prefix like: > >> >>> >> kylin.rest.servers= > >> >>> >> >> >> > >> >>> >> >> >>http://test.abc.com:8080,http://test.abc.com:8081, > >> >>> >> >> http://test.abc.com:808 > >> >>> >> >> >>2 > >> >>> >> >> >> > >> >>> >> >> >> 2015-05-06 23:40 GMT+08:00 dong wang > >><[email protected] > >> >: > >> >>> >> >> >> > >> >>> >> >> >> > @shaofeng, another question is that can I git clone the > >> >>>branch > >> >>> >> >> >> > "0.71-staging"( > >> >>> >> https://github.com/KylinOLAP/Kylin/tree/0.7.1-staging > >> >>> >> >> ) > >> >>> >> >> >>to > >> >>> >> >> >> > get the latest code to build the binary? > >> >>> >> >> >> > > >> >>> >> >> >> > 2015-05-06 23:38 GMT+08:00 dong wang > >> >>><[email protected]>: > >> >>> >> >> >> > > >> >>> >> >> >> >> I double checked one piece of the above log of the "ALL" > >> >>>mode > >> >>> >> kylin > >> >>> >> >> >> >> instance: > >> >>> >> >> >> >> > >> >>> >> >> >> >> > >> >>> >> >> >> >> > >> >>> >> >> >> > >> >>> >> >> > >> >>> >> >> > >> >>> >> > >> >>> > >> > >>>>>>>17:36:21,910][INFO][org.apache.kylin.common.restclient.Broadcaster$1 > >>>>>>>.r > >> >>>>>un( > >> >>> >> >> >>Broadcaster.java:71)] > >> >>> >> >> >> >> - new broadcast event:BroadcastEvent{type=cube, > >>name=lbs_ma > >> >>> >> >> >> >> p_new_user_fact, action=update} > >> >>> >> >> >> >> 2553 [pool-7-thread-10]:[2015-05-06 > >> >>> >> >> >> >> > >> >>> >> >> >> >> > >> >>> >> >> >> > >> >>> >> >> > >> >>> >> >> > >> >>> >> > >> >>> > >> > >>>>>>>17:36:21,911][DEBUG][org.apache.kylin.common.persistence.ResourceSto > >>>>>>>re > >> >>>>>.pu > >> >>> >> >> >>tResource(ResourceStore.java:171)] > >> >>> >> >> >> >> - Saving resource /execute_output/f03d3c3c-68 > >> >>> >> >> >> >> f4-4593-b01d-2778fcaf098b-15 (Store > >>kylin_metadata@hbase) > >> >>> >> >> >> >> 2554 [pool-7-thread-10]:[2015-05-06 > >> >>> >> >> >> >> > >> >>> >> >> >> >> > >> >>> >> >> >> > >> >>> >> >> > >> >>> >> >> > >> >>> >> > >> >>> > >> > >>>>>>>17:36:21,921][DEBUG][org.apache.kylin.common.persistence.ResourceSto > >>>>>>>re > >> >>>>>.pu > >> >>> >> >> >>tResource(ResourceStore.java:171)] > >> >>> >> >> >> >> - Saving resource /execute_output/f03d3c3c-68 > >> >>> >> >> >> >> f4-4593-b01d-2778fcaf098b-15 (Store > >>kylin_metadata@hbase) > >> >>> >> >> >> >> 2555 [http-bio-8081-exec-5]:[2015-05-06 > >> >>> >> >> >> >> > >> >>> >> >> >> >> > >> >>> >> >> >> > >> >>> >> >> > >> >>> >> >> > >> >>> >> > >> >>> > >> > >>>>>>>17:36:21,922][INFO][org.apache.kylin.rest.controller.CacheController > >>>>>>>.w > >> >>>>>ipe > >> >>> >> >> >>Cache(CacheController.java:63)] > >> >>> >> >> >> >> - wipe cache type: CUBE event:UPDATE name:lb > >> >>> >> s_map_new_user_fact > >> >>> >> >> >> >> > >> >>> >> >> >> >> > >> >>> >> >> >> >> from the first line and the last line, it seems that it > >> >>>tries > >> >>> to > >> >>> >> >> call > >> >>> >> >> >> >> sync something related to 'rest', however, when I check > >> >>>the > >> >>> >> >> >>kylin.log > >> >>> >> >> >> for > >> >>> >> >> >> >> each of the "QUERY" mode kylin instances, no related log > >> >>> reponse > >> >>> >> to > >> >>> >> >> >>the > >> >>> >> >> >> >> rest sync > >> >>> >> >> >> >> > >> >>> >> >> >> > > >> >>> >> >> >> > > >> >>> >> >> >> > >> >>> >> >> > >> >>> >> >> > >> >>> >> > > >> >>> >> > >> >>> > > >> >>> > > >> >>> > >> >> > >> >> > >> > >> > >
