我有一個分佈式hadoop集羣,它的hdfs上運行着hbase。要構建地圖/ HBase的使用減少的工作,我有這些依賴關係:Hbase映射器/減少集羣節點上的庫需求
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>1.2.3</version>
<scope>provided</scope>
</dependency>
</dependencies>
我試圖找出究竟如何部署的所有這些庫。 hadoop應該在其classpath中包含$ HBASE_HOME/lib/*嗎?有很多重疊和版本衝突。看起來我應該只需要一些子集,但是hbase文檔只提供一些幫助:
替換捆綁HBase的Hadoop!由於HBase依賴於 Hadoop,因此它將Hadoop jar實例捆綁在lib 目錄下。捆綁的jar只能用於獨立模式。在 分佈式模式下,羣集中出現的 Hadoop版本與HBase下的內容匹配至關重要。將您在HBase lib目錄中找到的hadoop jar 替換爲羣集上運行的hadoop jar ,以避免版本不匹配問題。確保您的 替換羣集中HBase上的jar。 Hadoop版本 不匹配問題有各種表現,但通常看起來像它掛起的 。
我無法找到它肯定會告訴您哪裏需要添加到hadoop的計算節點的hbase庫。
我所做的是將這些放在/ home/hadoop/share/hadoop/hbase/as符號鏈接中,然後將整個目錄添加到hadoop-env.sh中的hadoop類路徑 – wz2b