hortonworks-data-platformkylin

Unable to start Apache Kylin in HDP 3.0.1


I'm trying to run Apache Kylin on a cluster with HDP 3.0.1. When I run ./kylin.sh start I get the following output:

(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Retrieving hive dependency... Retrieving hbase dependency... Retrieving hadoop conf dir... Retrieving kafka dependency... Retrieving Spark dependency... Start to check whether we need to migrate acl tables Retrieving hive dependency... Retrieving hbase dependency... Retrieving hadoop conf dir... Retrieving kafka dependency... Retrieving Spark dependency.. . . . . . A new Kylin instance is started by hduser. To stop it, run 'kylin.sh stop' Check the log at /usr/local/apache-kylin-2.6.2-bin-hadoop3/logs/kylin.log Web UI is at http://iservices:7070/kylin

So it seems that Kylin starts correctly.

Then, when I try to access the web UI I get not found error and, in the log file I get this errors:

2019-05-22 11:44:26,105 WARN  [localhost-startStop-1] scan.StandardJarScanner:146 : Failed to scan [file:/usr/hdp/3.0.1.0-187/spark2/jars/derbyLocale_cs.jar] from classloader hierarchy
scan.StandardJarScanner:146 : Failed to scan [file:/usr/hdp/3.0.1.0-187/spark2/jars/derbyLocale_ja_JP.jar] from classloader hierarchy
java.io.FileNotFoundException: /usr/hdp/3.0.1.0-187/spark2/jars/derbyLocale_ja_JP.jar (No such file or directory)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:130)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:196)
        at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65)
        at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49)
        at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:374)
        at org.apache.tomcat.util.scan.StandardJarScanner.processURLs(StandardJarScanner.java:309)
        at org.apache.tomcat.util.scan.StandardJarScanner.doScanClassPath(StandardJarScanner.java:266)
        at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:229)
        at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262)
        at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104)
        at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5245)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

2019-05-22 11:44:29,073 WARN  [localhost-startStop-1] scan.StandardJarScanner:146 : Failed to scan [file:/usr/hdp/3.0.1.0-187/spark2/jars/derbyLocale_zh_TW.jar] from classloader hierarchy
java.io.FileNotFoundException: /usr/hdp/3.0.1.0-187/spark2/jars/derbyLocale_zh_TW.jar (No such file or directory)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:130)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:196)
        at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65)
        at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49)
        at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:374)
        at org.apache.tomcat.util.scan.StandardJarScanner.processURLs(StandardJarScanner.java:309)
        at org.apache.tomcat.util.scan.StandardJarScanner.doScanClassPath(StandardJarScanner.java:266)
        at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:229)
        at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262)
        at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104)
        at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5245)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
2019-05-22 11:44:29,073 INFO  [localhost-startStop-1] servlet.TldScanner:119 : At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2019-05-22 11:44:29,359 INFO  [localhost-startStop-1] [localhost].[/kylin]:119 : No Spring WebApplicationInitializer types detected on classpath
2019-05-22 11:44:29,474 INFO  [localhost-startStop-1] common.KylinConfig:101 : Loading kylin-defaults.properties from file:/usr/local/apache-kylin-2.6.2-bin-hadoop3/tomcat/webapps/kylin/WEB-INF/lib/kylin-core-common-2.6.2.jar!/kylin-defaults.properties
2019-05-22 11:44:29,492 DEBUG [localhost-startStop-1] common.KylinConfig:328 : KYLIN_CONF property was not set, will seek KYLIN_HOME env variable
2019-05-22 11:44:29,492 INFO  [localhost-startStop-1] common.KylinConfig:334 : Use KYLIN_HOME=/usr/local/apache-kylin-2.6.2-bin-hadoop3
2019-05-22 11:44:29,504 INFO  [localhost-startStop-1] common.KylinConfig:136 : Initialized a new KylinConfig from getInstanceFromEnv : 232884412
2019-05-22 11:44:29,577 INFO  [localhost-startStop-1] [localhost].[/kylin]:119 : Set web app root system property: 'webapp.root' = [/usr/local/apache-kylin-2.6.2-bin-hadoop3/tomcat/webapps/kylin/]
2019-05-22 11:44:29,611 INFO  [localhost-startStop-1] [localhost].[/kylin]:119 : Initializing log4j from [classpath:kylin-server-log4j.properties]
2019-05-22 11:44:29,655 INFO  [localhost-startStop-1] [localhost].[/kylin]:119 : Initializing Spring root WebApplicationContext
2019-05-22 11:44:30,588 INFO  [localhost-startStop-1] core.SpringSecurityCoreVersion:75 : You are running with Spring Security Core 4.2.3.RELEASE
2019-05-22 11:44:30,592 INFO  [localhost-startStop-1] config.SecurityNamespaceHandler:78 : Spring Security 'config' module version is 4.2.3.RELEASE
2019-05-22 11:44:30,631 INFO  [localhost-startStop-1] method.GlobalMethodSecurityBeanDefinitionParser:176 : Using bean 'expressionHandler' as method ExpressionHandler implementation
2019-05-22 11:44:30,690 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'permitAll' for /api/user/authentication*/**
2019-05-22 11:44:30,691 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'hasRole('ROLE_ADMIN')' for /api/query/runningQueries
2019-05-22 11:44:30,691 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'hasRole('ROLE_ADMIN')' for /api/query/*/stop
2019-05-22 11:44:30,691 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'isAuthenticated()' for /api/query*/**
2019-05-22 11:44:30,692 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'isAuthenticated()' for /api/metadata*/**
2019-05-22 11:44:30,692 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'permitAll' for /api/**/metrics
2019-05-22 11:44:30,692 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'permitAll' for /api/cache*/**
2019-05-22 11:44:30,692 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'hasAnyRole('ROLE_ANALYST')' for /api/cubes/src/tables
2019-05-22 11:44:30,692 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'isAuthenticated()' for /api/cubes*/**
2019-05-22 11:44:30,693 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'isAuthenticated()' for /api/models*/**
2019-05-22 11:44:30,693 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'isAuthenticated()' for /api/streaming*/**
2019-05-22 11:44:30,693 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'isAuthenticated()' for /api/job*/**
2019-05-22 11:44:30,693 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'permitAll' for /api/admin/public_config
2019-05-22 11:44:30,693 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'permitAll' for /api/projects
2019-05-22 11:44:30,693 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'hasRole('ROLE_ADMIN')' for /api/admin*/**
2019-05-22 11:44:30,694 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'permitAll' for /api/tables/**/snapshotLocalCache/**
2019-05-22 11:44:30,694 INFO  [localhost-startStop-1] http.FilterInvocationSecurityMetadataSourceParser:194 : Creating access control expression attribute 'isAuthenticated()' for /api/**
2019-05-22 11:44:30,713 INFO  [localhost-startStop-1] http.HttpSecurityBeanDefinitionParser:306 : Checking sorted filter chain: [Root bean: class [org.springframework.security.web.context.SecurityContextPersistenceFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 200, Root bean: class [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 400, Root bean: class [org.springframework.security.web.header.HeaderWriterFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 500, Root bean: class [org.springframework.security.web.authentication.logout.LogoutFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 800, <org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0>, order = 1200, Root bean: class [org.springframework.security.web.authentication.www.BasicAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1600, Root bean: class [org.springframework.security.web.savedrequest.RequestCacheAwareFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1700, Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.security.config.http.HttpConfigurationBuilder$SecurityContextHolderAwareRequestFilterBeanFactory#0; factoryMethodName=getBean; initMethodName=null; destroyMethodName=null, order = 1800, Root bean: class [org.springframework.security.web.authentication.AnonymousAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2100, Root bean: class [org.springframework.security.web.session.SessionManagementFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2200, Root bean: class [org.springframework.security.web.access.ExceptionTranslationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2300, <org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0>, order = 2400]
2019-05-22 11:44:32,771 DEBUG [localhost-startStop-1] security.PasswordPlaceholderConfigurer:174 : Loading properties file from InputStream resource [resource loaded through InputStream]
2019-05-22 11:44:33,286 INFO  [localhost-startStop-1] filter.AnnotationSizeOfFilter:53 : Using regular expression provided through VM argument net.sf.ehcache.pool.sizeof.ignore.pattern for IgnoreSizeOf annotation : ^.*cache\..*IgnoreSizeOf$
2019-05-22 11:44:33,332 INFO  [localhost-startStop-1] sizeof.JvmInformation:446 : Detected JVM data model settings of: 64-Bit OpenJDK JVM with Compressed OOPs
2019-05-22 11:44:33,625 INFO  [localhost-startStop-1] sizeof.AgentLoader:198 : Extracted agent jar to temporary file /usr/local/apache-kylin-2.6.2-bin-hadoop3/bin/../tomcat/temp/ehcache-sizeof-agent1279407813938909413.jar
2019-05-22 11:44:33,626 INFO  [localhost-startStop-1] sizeof.AgentLoader:138 : Trying to load agent @ /usr/local/apache-kylin-2.6.2-bin-hadoop3/bin/../tomcat/temp/ehcache-sizeof-agent1279407813938909413.jar
2019-05-22 11:44:33,671 INFO  [localhost-startStop-1] impl.DefaultSizeOfEngine:111 : using Agent sizeof engine
2019-05-22 11:44:34,563 INFO  [localhost-startStop-1] metrics.MetricsManager:136 : Kylin metrics monitor is not enabled
2019-05-22 11:44:34,745 WARN  [localhost-startStop-1] support.XmlWebApplicationContext:551 : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationException
2019-05-22 11:44:34,751 ERROR [localhost-startStop-1] context.ContextLoader:350 : Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationException
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.getDeclaredMethods(Class.java:1975)
        at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613)
        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524)
        at org.springframework.core.MethodIntrospector.selectMethods(MethodIntrospector.java:68)
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:230)
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:214)
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:184)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:127)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
        ... 25 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.ConfigurationException
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
        ... 37 more
2019-05-22 11:44:34,751 WARN  [localhost-startStop-1] [localhost].[/kylin]:164 : Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationException
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/configuration/ConfigurationException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.getDeclaredMethods(Class.java:1975)
        at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613)
        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524)
        at org.springframework.core.MethodIntrospector.selectMethods(MethodIntrospector.java:68)
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:230)
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:214)
        at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:184)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:127)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
        ... 25 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.ConfigurationException
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
        ... 37 more
2019-05-22 11:44:34,752 WARN  [localhost-startStop-1] core.StandardContext:155 : One or more listeners failed to start. Full details will be found in the appropriate container log file
2019-05-22 11:44:34,806 WARN  [localhost-startStop-1] core.StandardContext:155 : Context [/kylin] startup failed due to previous errors
2019-05-22 11:44:34,808 INFO  [localhost-startStop-1] [localhost].[/kylin]:119 : Closing Spring root WebApplicationContext
2019-05-22 11:44:34,818 INFO  [localhost-startStop-1] [localhost].[/kylin]:119 : Shutting down log4j

Solution

  • Short Answer

    Append derbyLocale_*.jar to the list of tomcat.util.scan.StandardJarScanFilter.jarsToSkip of {$KYLIN_HOME}/tomcat/conf/catalina.properties and you are good to go. As to the ClassNotFoundException, just put commons-configuration-1.x.jar under tomcat/webapps/kylin/WEB-INF/lib.

    Long Answer

    Missing locale jar is due to jarScanning of tomcat which is used to to find configuration files (in this case, log4j.xml) for the project. It read MANIFEST of jars to find their classpath dependencies and try to load them. Unfortunately spark2 removed all locale jar of derby but forget to modify the MANIFEST of derby-10.12.1.1.jar to remove them. And the ClassNotFoundException is simply a compatible problem, caused by pacakgePath change of org.apache.commons.configuration.ConfigurationException to org.apache.commons.configuration2.ex.ConfigurationException