Я пытаюсь подключиться из локального приложения Java к работающему кластеру HBase.Фрагмент приведен ниже.
public static Configuration configuration;
static {
configuration = HBaseConfiguration.create();
configuration.set("hbase.zookeeper.property.clientPort", "2181");
configuration.set("hbase.zookeeper.quorum","slave-public-dns.us-east-2.compute.amazonaws.com");
configuration.set("hbase.master", "master-public-dns.us-east-2.compute.amazonaws.com:9000");
}
public static void main(String... args) throws IOException {
new HbaseTest().connect();
}
private void connect() throws IOException {
try {
HBaseAdmin.available(configuration);
} catch (MasterNotRunningException e) {
System.out.println("HBase is not running." + e.getMessage());
return;
}
}
Мой кластер HBase запущен и работает.Я могу получить к нему доступ через общедоступный ip: http://master -public-dns.us-east-2.compute.amazonaws.com: 16010 / master-status
Пользовательский интерфейс хорошо показываетвверх.Однако, когда я пытаюсь получить доступ к нему из приложения Java, я получаю следующее исключение:
HBase is not running.org.apache.hadoop.hbase.MasterNotRunningException: java.io.IOException:
org.apache.zookeeper.KeeperException$ConnectionLossException:
KeeperErrorCode = ConnectionLoss for /hbase/master
У меня все порты TCP открыты на моих экземплярах EC2.Есть идеи, какую конфигурацию я делаю неправильно?Я в значительной степени скучаю по любому учебнику, который бы шаг за шагом проводил меня через эту конфигурацию, поэтому любая помощь будет оценена.Где я могу получить кворум зоопарка?Когда я открываю HBase UI и беру значение оттуда, я получаю неизвестное исключение хоста.Нужно ли открывать переадресацию портов?Какие порты по умолчанию использует кластер AWS EMR Hbase & zookeeper для соответствующих узлов?Есть идеи, как это решить?