Подключите HBase через Knox, используя HBase Java Client на CDP

Мне нужно подключиться к HBase через Knox, используя HBase Java Client. У меня есть следующие сведения о Ноксе

      Knox_Url: https://knox-host:port/gateway/cdp-proxy-api/hbase
Username: knox_user_name
Password: knox_password

С помощью приведенного ниже кода я могу добавить URL-адрес, но не могу добавить учетные данные.

      URL url = new URL(Knox_Url);
Configuration conf = HBaseConfiguration.create();
conf.addResource(URL);

Connection con = ConnectionFactory.createConnection(conf);

Я видел другие вопросы StackOverflow, но все они упоминали следующие свойства, которые нужно установить в конфигурации.

       public void setUp() throws IOException {
        config = HBaseConfiguration.create();
        config.set("zookeeper.znode.parent","/hbase-unsecure");
        config.set("hbase.zookeeper.quorum", ZOOKEEPER_QUORUM);
        config.set("hbase.zookeeper.property.clientPort", "2181");
        config.set("hbase.cluster.distributed", "true");
        connection = ConnectionFactory.createConnection(config);
    }

Мой вопрос: есть ли способ использовать данные шлюза Knox для подключения к HBase и получения данных?

1 ответ

Мы можем использовать RestTemplate для подключения к HBase.

Конфиг

      public RestTemplate create(){
    return new RestTemplateBuilder()
              .basicAuthentication(user, password)
              .setConnectTimeout(Duration.ofSeconds(60))
              .setReadTimeout(Duration.ofSeconds(60))
              .build();
}

Применение

      String url = "https://host:port/gateway/cdp-proxy-api/hbase";
String response = config.create().getForEntity(url, String.class).getBody();
Другие вопросы по тегам