Please change your configuration to: host:port\,host2:port\,host3:port Kylin use apache commons configuration lib to parse the configurations; While what Kylin got is just the content before the first comma (that means, only one rest server); To let Kylin get the full content, need add \ before comma;
We will seek a better solution later; for now please use this as a workaround; On 5/8/15, 5:14 PM, "Shi, Shaofeng" <[email protected]> wrote: >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.reload >>>>>>A >>>>>>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.reload >>>>>>A >>>>>>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.reload >>>>>>A >>>>>>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.reload >>>>>>A >>>>>>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.reload >>>>>>A >>>>>>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.reload >>>>>>A >>>>>>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.resetO >>>>>>L >>>>>>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.getCo >>>>>>n >>>>>>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.jav >>>>>>a >>>>>>: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(UnregisteredDri >>>>>>v >>>>>>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.getConnec >>>>>>t >>>>>>io >>> >>>nFromDriverManager(DriverManagerDataSource.java:17 >>> >>> >> > 3) >>> >>> >> > 3274 at >>> >>> >> > >>> >>> >> >>> >>> >>> >>>>>>org.springframework.jdbc.datasource.DriverManagerDataSource.getConnec >>>>>>t >>>>>>io >>> >>>nFromDriver(DriverManagerDataSource.java:164) >>> >>> >> > 3275 at >>> >>> >> > >>> >>> >> >>> >>> >>> >>>>>>org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.get >>>>>>C >>>>>>on >>> >>>nectionFromDriver(AbstractDriverBasedDataSource.ja >>> >>> >> > va:149) >>> >>> >> > 3276 at >>> >>> >> > >>> >>> >> >>> >>> >>> >>>>>>org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.get >>>>>>C >>>>>>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.ResourceSt >>>>>>>>o >>>>>>>>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.ResourceSt >>>>>>>>o >>>>>>>>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.CacheControlle >>>>>>>>r >>>>>>>>.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 >>> >>> >> >> >> >> >>> >>> >> >> >> > >>> >>> >> >> >> > >>> >>> >> >> >> >>> >>> >> >> >>> >>> >> >> >>> >>> >> > >>> >>> >> >>> >>> > >>> >>> > >>> >>> >>> >> >>> >> >>> >>> >
