HbaseConfiguration.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.winhc.fast.query.configuration;
  2. import lombok.AllArgsConstructor;
  3. import lombok.SneakyThrows;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.apache.hadoop.hbase.HBaseConfiguration;
  6. import org.apache.hadoop.hbase.client.AsyncConnection;
  7. import org.apache.hadoop.hbase.client.ConnectionFactory;
  8. import org.springframework.boot.context.properties.EnableConfigurationProperties;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.context.annotation.Configuration;
  11. import java.util.Map;
  12. import java.util.Set;
  13. import java.util.concurrent.CompletableFuture;
  14. /**
  15. * @author: XuJiakai
  16. * 2022/5/25 11:05
  17. */
  18. @Slf4j
  19. @Configuration
  20. @AllArgsConstructor
  21. @EnableConfigurationProperties(HbaseProperties.class)
  22. public class HbaseConfiguration {
  23. private final HbaseProperties properties;
  24. @SneakyThrows
  25. @Bean
  26. public AsyncConnection asyncConnection() {
  27. CompletableFuture<AsyncConnection> asyncConnection = ConnectionFactory.createAsyncConnection(configuration());
  28. return asyncConnection.get();
  29. }
  30. public org.apache.hadoop.conf.Configuration configuration() {
  31. org.apache.hadoop.conf.Configuration configuration = HBaseConfiguration.create();
  32. Map<String, String> config = properties.getConfig();
  33. Set<String> keySet = config.keySet();
  34. for (String key : keySet) {
  35. configuration.set(key, config.get(key));
  36. }
  37. return configuration;
  38. }
  39. }