问题描述:

启动Azkaban报错:

java.lang.NoSuchMethodError:com.google.common.collect.ImmutableMap.toImmutableMap

解决方法:

从报错信息来看,是找不到toImmutableMap这个方法。首先找到类ImmutableMap对应的Jar包为guava,然后在服务器查找这个Jar包:

find / -name "guava*.jar"

发现除了Azkaban安装目录,其他程序目录下也有guava包。Azkaban里面的guava包版本为guava-21.0.jar,其他程序的版本有11,14,17,18,19,21,25,怀疑是由于有多个guava包,而使用的是低版本的包,里面没有toImmutableMap方法。

接下来,看看azkaban运行时候的classpath是什么样的。查看Web Server启动文件start-web.sh:

more /u01/app/azkaban-3.50.0/azkaban-web-server-0.1.0-SNAPSHOT/bin/start-web.sh

内容为:

#!/bin/bash

script_dir=$(dirname $0)

${script_dir}/internal/internal-start-web.sh >webServerLog_`date +%F+%T`.out 2>&1 &

调用的是internal-start-web.sh,于是再查看:

more /u01/app/azkaban-3.50.0/azkaban-web-server-0.1.0-SNAPSHOT/bin/internal/internal-start-web.sh

内容为:

#!/bin/bash

azkaban_dir=$(dirname $0)/../..

# Specifies location of azkaban.properties, log4j.properties files

# Change if necessary

conf=$azkaban_dir/conf

if [[ -z "$tmpdir" ]]; then

tmpdir=/tmp

fi

for file in $azkaban_dir/lib/*.jar;

do

CLASSPATH=$CLASSPATH:$file

done

for file in $azkaban_dir/extlib/*.jar;

do

CLASSPATH=$CLASSPATH:$file

done

for file in $azkaban_dir/plugins/*/*.jar;

do

CLASSPATH=$CLASSPATH:$file

done

if [ "$HADOOP_HOME" != "" ]; then

echo "Using Hadoop from $HADOOP_HOME"

CLASSPATH=$CLASSPATH:$HADOOP_HOME/conf:$HADOOP_HOME/*

JAVA_LIB_PATH="-Djava.library.path=$HADOOP_HOME/lib/native/Linux-amd64-64"

else

echo "Error: HADOOP_HOME is not set. Hadoop job types will not run properly."

fi

if [ "$HIVE_HOME" != "" ]; then

echo "Using Hive from $HIVE_HOME"

CLASSPATH=$CLASSPATH:$HIVE_HOME/conf:$HIVE_HOME/lib/*

fi

echo $azkaban_dir;

echo $CLASSPATH;

executorport=`cat $conf/azkaban.properties | grep executor.port | cut -d = -f 2`

serverpath=`pwd`

if [[ -z "$AZKABAN_OPTS" ]]; then

AZKABAN_OPTS="-Xmx4G"

fi

# Set the log4j configuration file

if [ -f $conf/log4j.properties ]; then

AZKABAN_OPTS="$AZKABAN_OPTS -Dlog4j.configuration=file:$conf/log4j.properties -Dlog4j.log.dir=$azkaban_dir/logs"

else

echo "Exit with error: $conf/log4j.properties file doesn't exist."

exit 1;

fi

AZKABAN_OPTS="$AZKABAN_OPTS -server -Dcom.sun.management.jmxremote -Djava.io.tmpdir=$tmpdir -Dexecutorport=$executorport -Dserverpat

h=$serverpath"

java $AZKABAN_OPTS $JAVA_LIB_PATH -cp $CLASSPATH azkaban.webapp.AzkabanWebServer -conf $conf $@ &

echo $! > $azkaban_dir/currentpid

可以看到,Azkaban安装目录的jar包是在原$CLASSPATH之后的,如下:

启动azkaban报错_解决启动Azkaban报错问题:java.lang.NoSuchMethodError: com.google.comm相关推荐

  1. 解决:Exception in thread main java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExe

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.报错: Exception in thread "main" java.la ...

  2. 启动hive报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang

    报错详情: b/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf ...

  3. hive启动报错:Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition

    报错如下 Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Precon ...

  4. flink SQL报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLj

    问题 flink SQL连接hive以及hudi 报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkAr ...

  5. Hive启动报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

    今天,搞了下hive,想着这个安装挺简单,结果一启动hive给我来着一招 hive:小兄弟,没想到吧,咱可不是随便的人.

  6. 日常问题——flume连接hive时报错Caused by: java.lang.NoSuchMethodError

    问题描述: 今天新安装的flume,使用flume来做kafka与hive对接时出现了以下两个的错误: Caused by: org.apache.hive.hcatalog.streaming.Co ...

  7. Spark 启动报错时报错 java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collect

    今天在Spark测试时异常 报错 一直 提示 找不到 该方法 因为 本身代码量很小 而且  没有用到 错误提示的类  找了许久 才发现是 版本 对应问题 /Library/Java/JavaVirtu ...

  8. 解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错

    解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错 问题描述:   笔者将一个在 Tomcat ...

  9. 报此错错解决办法:java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z

    java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 的解决方式 Caused by: java.lang ...

最新文章

  1. xcode 4.3.2 use storyboard创建TableView
  2. 发送邮件程序(Csharp2005)
  3. 统治世界的十大排序算法!
  4. 【Oracle】表空间相关集合
  5. 皮一皮:你住的小区叫什么名字?
  6. python中打印二维列表数据
  7. 【NPOI】.NET EXCEL导入导出开发包
  8. centos7 升级curl版本
  9. PHP基本语法(实例)
  10. nodemcu固件_从无到有玩NodeMcu:web端控制
  11. Centos磁盘管理和文件系统管理
  12. 2017.4.5 java中static关键字
  13. kali中binwalk/foremost/zip2john工具的配合使用
  14. 隐语义模型(LFM)
  15. 手机游戏开发平台有哪些
  16. 魔兽世界怀旧服最新服务器开发时间,魔兽世界怀旧服明日开放,开服第一天“大部队”能升到多少级?...
  17. 数学传奇3——神话的破灭
  18. Windows 系统引导过程
  19. oracle 月份中日的值必须介于 1 和当月最后一日之间,ora-01847:月份中日的值必须介于 1 和当月最后一日之间...
  20. matlab控制电动机调速,控制电机调速及matlab仿真.doc

热门文章

  1. linux之file命令总结
  2. Android之支付宝设计与开发
  3. cstring判断包含字符串_Python字符串方法之-解决判断问题
  4. layui 数字步进器_图解全新奔驰S级:从“传统豪华”向“数字豪华”转型
  5. 千万别让男朋友穿你的短裙......
  6. 你为什么不爱发朋友圈了?
  7. 这10个人,总是牛逼的无话可说
  8. 中科大博士写外挂被抓,非法牟利300多万!
  9. 来自女朋友的灵魂拷问!| 今日最佳
  10. 阿里云开源的Blink,计算能力很疯狂:一眨眼,全部都算好!