簡體   English   中英

帶有HBase Scan的java.lang.NoClassDefFoundError

[英]java.lang.NoClassDefFoundError with HBase Scan

我正在嘗試運行MapReduce作業來掃描HBase表。 目前我使用的是Cloudera 4.4附帶的HBase版本0.94.6。 在我的程序中的某個時刻,我使用Scan(),我正確地導入它:

import org.apache.hadoop.hbase.client.Scan;

它編譯得很好,我也可以創建一個jar文件。 我通過將hbase classpath作為-cp選項的值傳遞來實現。 運行程序時,我收到以下消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/client/Scan

我運行代碼使用:

hadoop jar my_program.jar MyJobClass -libjars <list_of_jars>

其中list_of_jars包含/opt/cloudera/parcels/CDH/lib/hbase/hbase.jar。 為了仔細檢查,我確認hbase.jar包含Scan。 我這樣做:

jar tf /opt/cloudera/parcels/CDH/lib/hbase/hbase.jar

我可以看到這條線:

org/apache/hadoop/hbase/client/Scan.class

在輸出中。 一切看起來都不錯。 我不明白為什么說Scan沒有定義。 我傳遞了正確的jar,它包含了類。

任何幫助表示贊賞。

設置HADOOP_CLASSPATH變量修復了問題:

export HADOOP_CLASSPATH=`/usr/bin/hbase classpath`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM