【发布时间】:2016-10-07 16:27:17
【问题描述】:
我有一个分布式 hadoop 集群,hbase 在其 hdfs 上运行。要使用 hbase 构建 map/reduce 作业,我包含以下依赖项:
<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 应该只在其类路径中包含 $HBASE_HOME/lib/* 吗?有很多重叠和版本冲突。看起来我应该只需要一些子集,但 hbase 文档只提供了一点帮助:
替换与 HBase 捆绑的 Hadoop!因为 HBase 依赖于 Hadoop,它在其 lib 下捆绑了一个 Hadoop jar 的实例 目录。捆绑的 jar 仅用于独立模式。在 分布式模式下,Hadoop 的版本至关重要 在您的集群上匹配 HBase 下的内容。更换hadoop jar 使用您正在运行的 hadoop jar 在 HBase lib 目录中找到 在您的集群上,以避免版本不匹配问题。确保你 在集群的任何地方替换 HBase 中的 jar。 Hadoop版本 不匹配问题有多种表现形式,但通常看起来都像 挂了。
我找不到它在哪里肯定地告诉您需要将哪些 hbase 库添加到 hadoop 的计算节点。
【问题讨论】: