HiveConnectionFactory.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.primeton.dsp.datarelease.data.bdata;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.apache.commons.lang.StringUtils;
  4. import java.util.Properties;
  5. /**
  6. *
  7. * 根据参数不同,生成不动的测试连接实例
  8. *
  9. * <pre>
  10. *
  11. * Created by zhaopx.
  12. * User: zhaopx
  13. * Date: 2020/4/21
  14. * Time: 18:02
  15. *
  16. * </pre>
  17. *
  18. * @author zhaopx
  19. */
  20. @Slf4j
  21. public class HiveConnectionFactory {
  22. /**
  23. * 生成不同的测试实例
  24. * @return
  25. */
  26. public static HiveConnectionService getHiveInstance(Properties hiveResource) {
  27. String authType = hiveResource.getProperty("authType");
  28. String hiveDbUser = hiveResource.getProperty("hiveDbUser");
  29. if("noauth".equalsIgnoreCase(authType)) {
  30. // 默认无认证的方式测试
  31. return new SimpleHiveConnectionServiceImpl(hiveResource);
  32. } else if ("kerberos".equalsIgnoreCase(authType) && StringUtils.isNotBlank(hiveDbUser)) {
  33. return new Krb5HiveConnectionServiceImpl(hiveResource);
  34. } else if ("fi".equalsIgnoreCase(authType) && StringUtils.isNotBlank(hiveDbUser)) {
  35. return new FIHiveConnectionServiceImpl(hiveResource);
  36. }
  37. // 未知的方式,只能通过简单的来处理一下了。
  38. log.info("未知的Hive认证方式:" + authType);
  39. return new SimpleHiveConnectionServiceImpl(hiveResource);
  40. }
  41. }