您好,欢迎来到尔游网。
搜索
您的当前位置:首页Zeppelin-Interperter遇到的logging问题-以IoTDB为例

Zeppelin-Interperter遇到的logging问题-以IoTDB为例

来源:尔游网

一次debug记录,以IoTDB的Zeppelin连接器中遇到的logging为例。

直接解决log问题

有cli,去掉cli,可以编译,但是报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/Log
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer.<init>(RemoteInterpreterServer.java:153)
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer.<init>(RemoteInterpreterServer.java:161)
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer.main(RemoteInterpreterServer.java:356)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 3 more

查阅 添加commons-logging依赖,但仍然报错,这个包不对。

看zeppelin的其他解决方案

看zeppelin的 中Cassandra的pom,发现zeppelin最近一次commit中修改了log的引用:

Iotdb恰好也做了了,所以也没有什么用。

brute-force:从maven依赖逐一排除

依赖cli显然是没有道理的,从zeppelin-interpreter的代码中来看,仅应该依赖iotdb-sessionservice-rpc也用到了,但是session中已经依赖了rpc),应该是cli中用到的一些log包恰好解决了zeppelin的日志问题,开始排查:

小结

新加package: slf4j-jcl

<!--<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>${org.slf4j.version}</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-nop</artifactId>
  <version>${org.slf4j.version}</version>
</dependency>-->
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-jcl</artifactId>
  <version>${org.slf4j.version}</version>
</dependency>

附-warning引发的maven error

遇到编译问题,使用-e编译:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M2:enforce (enforce-version-convergence) on project zeppelin: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M2:enforce (enforce-version-convergence) on project zeppelin: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:2)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.
	at org.apache.maven.plugins.enforcer.EnforceMojo.execute(EnforceMojo.java:235)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 20 more

看到一个warning,版本号重复定义了,应该是basic中已经有了core?去掉:

Dependency convergence error for ch.qos.logback:logback-core:1.1.11 paths to dependency are:
+-org.apache.iotdb:zeppelin:0.12.0-SNAPSHOT
  +-org.apache.iotdb:iotdb-session:0.12.0-SNAPSHOT
    +-org.apache.iotdb:tsfile:0.12.0-SNAPSHOT
      +-ch.qos.logback:logback-classic:1.1.11
        +-ch.qos.logback:logback-core:1.1.11
and
+-org.apache.iotdb:zeppelin:0.12.0-SNAPSHOT
  +-ch.qos.logback:logback-core:1.2.3

编译成功。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务