跳轉到主要內容

Hbase Version提示org.apache.hadoop.hbase.util.GetJavaProperty

分類
故障描述

  客戶安裝flume執行flume-ng verion提示org.apache.hadoop.hbase.util.GetJavaProperty。hbase version也提示該錯誤。

故障分析

  hbase bug,詳見:https://reviews.apache.org/r/69299/diff/2/?expand=1

處理過程

進入hbase/bin目錄

cp?hbase.distro?hbase.distro-bak //先備份原有文件

vi?hbase.distro

切到182行,在add_to_cp_if_exists “${HBASE_HOME}/hbase-server/target” 這里下面加上兩行

? ? ? ? # Needed for GetJavaProperty check below
? ? add_to_cp_if_exists "${HBASE_HOME}/hbase-server/target/classes"

把下面大概186,187行的

?? ?#add the hbase jars for each module
?? ?for f in $HBASE_HOME/hbase-jars/hbase*.jar; do
?? ??? ?if [[ $f = *sources.jar ]]
?? ? ?then
?? ? ? ?: # Skip sources.jar
?? ? ?elif [ -f $f ]
?? ? ?then
?? ? ? ?CLASSPATH=${CLASSPATH}:$f;
?? ? ?fi
?? ?done
這部分注釋掉

切到大概310行左右,在

? if [ -n "${HADOOP_IN_PATH}" ] && [ -f "${HADOOP_IN_PATH}" ]; then

下面加上一段:

? # If built hbase, temporarily add hbase-server*.jar to classpath for GetJavaProperty
? # Exclude hbase-server*-tests.jar
? temporary_cp=
? for f in "${HBASE_HOME}"/lib/hbase-server*.jar; do
? ? if [[ ! "${f}" =~ ^.*\-tests\.jar$ ]]; then
? ? ? temporary_cp=":$f"
? ? fi
? done

然后把

? HADOOP_JAVA_LIBRARY_PATH=$(HADOOP_CLASSPATH="$CLASSPATH" "${HADOOP_IN_PATH}" \?
改成

? HADOOP_JAVA_LIBRARY_PATH=$(HADOOP_CLASSPATH="$CLASSPATH${temporary_cp}" "${HADOOP_IN_PATH}" \
即可。

詳見附件文件

建議/總結

  無

黄色app-黄软件下载-黄软件破解版免费版_黄软件破解版下载大全