У меня есть распределенный кластер hadoop с hbase, работающим на его hdf. Для того, чтобы построить карту/уменьшить работу с помощью HBase я включаю эти зависимости:Hbase mappers/уменьшить требования к библиотеке на узлах кластера
<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 дает лишь небольшую помощь:
Замените Hadoop, входящий в комплект HBase! Поскольку HBase зависит от Hadoop, он связывает экземпляр флага Hadoop под его каталогом lib . Комбинированная банда ТОЛЬКО для использования в автономном режиме. В распределенном режиме крайне важно, чтобы версия Hadoop, имеющая , в вашем кластере соответствовала тому, что находится под HBase. Замените банку hadoop , найденную в каталоге HBase lib с банком hadoop, вы используете на своем кластере, чтобы избежать проблем с несоответствием версий. Удостоверьтесь, что вы замените банку в HBase повсюду на вашем кластере. Версия Hadoop Проблемы с рассогласованием имеют различные проявления, но часто все выглядит как его повесили.
Я не могу найти, где он говорит вам, какие библиотеки hbase вам нужно добавить в вычислительные узлы hadoop.
То, что я сделал, это разместить их в/home/hadoop/share/hadoop/hbase/в качестве символических ссылок, а затем добавить весь каталог в путь класса hadoop в hasoop-env.sh – wz2b