麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

解決啟動Azkaban報錯問題:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap

2024-07-21 02:03:21
字體:
來源:轉載
供稿:網友

問題描述:

啟動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/bashscript_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/bashazkaban_dir=$(dirname $0)/../..# Specifies location of azkaban.properties, log4j.properties files# Change if necessaryconf=$azkaban_dir/confif [[ -z "$tmpdir" ]]; thentmpdir=/tmpfifor file in $azkaban_dir/lib/*.jar;do CLASSPATH=$CLASSPATH:$filedonefor file in $azkaban_dir/extlib/*.jar;do CLASSPATH=$CLASSPATH:$filedonefor file in $azkaban_dir/plugins/*/*.jar;do CLASSPATH=$CLASSPATH:$filedoneif [ "$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."fiif [ "$HIVE_HOME" != "" ]; then    echo "Using Hive from $HIVE_HOME"    CLASSPATH=$CLASSPATH:$HIVE_HOME/conf:$HIVE_HOME/lib/*fiecho $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 fileif [ -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;fiAZKABAN_OPTS="$AZKABAN_OPTS -server -Dcom.sun.management.jmxremote -Djava.io.tmpdir=$tmpdir -Dexecutorport=$executorport -Dserverpath=$serverpath"java $AZKABAN_OPTS $JAVA_LIB_PATH -cp $CLASSPATH azkaban.webapp.AzkabanWebServer -conf $conf $@ &echo $! > $azkaban_dir/currentpid

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

for file in $azkaban_dir/lib/*.jar;do CLASSPATH=$CLASSPATH:$filedone

這樣,其他目錄下的guava包就會被先找到使用。好了,問題原因找到了,解決方法就很簡單了,將CLASSPATH=$CLASSPATH:$file改為CLASSPATH=$file:$CLASSPATH,讓Azkaban安裝目錄下的guava包先被找到使用。另外,Executor Server的啟動文件/u01/app/azkaban-3.50.0/azkaban-exec-server-0.1.0-SNAPSHOT/bin/internal/internal-start-executor.sh也需要做同樣修改。

修改完成后,再啟動服務就正常了。(Executor Server和Web Server都需要重新啟動)

完畢。

到此這篇關于啟動Azkaban報錯:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap的文章就介紹到這了,更多相關啟動Azkaban報錯內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日日草夜夜操 | 国产在线看一区 | 国产午夜精品一区二区三区视频 | 成人免费在线观看视频 | 97超视频在线观看 | 青草久久网 | 欧美xxxxx视频 | 色柚视频网站ww色 | 日本aaaa片毛片免费观蜜桃 | 鸳鸯谱在线观看高清 | 欧美女同hd | 欧美性生活久久 | 狠狠干网站| 成人免费在线视频播放 | 羞羞视频.www在线观看 | 国产精品久久久久久久久久久久久久久久 | av在线试看 | 天海翼无删减av三级在线观看 | 亚洲精品永久视频 | 91在线视频观看 | 久草高清视频 | 成年人免费视频大全 | 成人福利在线视频 | 成人免费看视频 | 97综合| 黄色羞羞 | av在线免费观看网 | 国产视频在线观看免费 | 一区二区三区欧美日韩 | 九九热免费精品视频 | 在线免费视频a | 精品国产乱码久久久久久久久 | 91成人免费版 | 国产日韩中文字幕 | 亚洲一区二区免费视频 | 久久综合狠狠综合久久 | 一级毛片电影院 | 久久综合久久美利坚合众国 | 羞羞视频一区 | 精品一区二区三区免费毛片 | 免费看真人a一级毛片 |