SimpleHiveConnectionServiceImpl.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.primeton.dsp.datarelease.data.bdata;
  2. import com.primeton.dsp.datarelease.server.model.DspHiveResource;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.apache.commons.lang.StringUtils;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.SQLException;
  8. /**
  9. *
  10. * Hive 无认证,以账号和密码的方式获得连接
  11. *
  12. *
  13. * <pre>
  14. *
  15. * Created by zhaopx.
  16. * User: zhaopx
  17. * Date: 2020/4/21
  18. * Time: 18:02
  19. *
  20. * </pre>
  21. *
  22. * @author zhaopx
  23. */
  24. @Slf4j
  25. public class SimpleHiveConnectionServiceImpl implements HiveConnectionService {
  26. /**
  27. * Hive 数据源
  28. */
  29. final DspHiveResource hiveResource;
  30. public SimpleHiveConnectionServiceImpl(DspHiveResource hiveResource) {
  31. this.hiveResource = hiveResource;
  32. }
  33. @Override
  34. public Connection getConnection() throws SQLException {
  35. String hUrl = "jdbc:hive2://ip:port/default";
  36. if(StringUtils.isNotBlank(hiveResource.getHiveUrl())) {
  37. hUrl = hiveResource.getHiveUrl();
  38. } else {
  39. hUrl = hUrl.replace("ip", hiveResource.getHiveIp());
  40. hUrl = hUrl.replace("port", hiveResource.getHivePort()+"");
  41. hUrl = hUrl.replace("default", hiveResource.getHiveDbName());
  42. }
  43. log.info("测试连接:{}", hUrl);
  44. try {
  45. Class.forName("org.apache.hive.jdbc.HiveDriver");
  46. } catch (ClassNotFoundException e) {
  47. throw new SQLException("找不到Hive驱动:org.apache.hive.jdbc.HiveDriver.", e);
  48. }
  49. return DriverManager.getConnection(hUrl, hiveResource.getHiveDbUser() , hiveResource.getHivePassword());
  50. }
  51. }