进入下面目录

  1. cd /root/soft/hive-1.2.1/bin
  2. [root@zjj101 bin]# hiveserver2

运行完了就卡在这里了, 因为hiveserver2是一个前台进程.

jdbc方式连接hive - 图1

jdbc客户端连接

pom 依赖

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.apache.logging.log4j</groupId>
  4. <artifactId>log4j-core</artifactId>
  5. <version>2.8.2</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.apache.hadoop</groupId>
  9. <artifactId>hadoop-common</artifactId>
  10. <version>2.7.2</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.apache.hadoop</groupId>
  14. <artifactId>hadoop-client</artifactId>
  15. <version>2.7.2</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.apache.hadoop</groupId>
  19. <artifactId>hadoop-hdfs</artifactId>
  20. <version>2.7.2</version>
  21. </dependency>
  22. <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc -->
  23. <dependency>
  24. <groupId>org.apache.hive</groupId>
  25. <artifactId>hive-jdbc</artifactId>
  26. <version>1.2.1</version>
  27. </dependency>
  28. <!-- <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId>
  29. <version>1.8</version> <scope>system</scope> <systemPath>C:\Program Files\Java\jdk1.8.0_121\lib\tools.jar</systemPath>
  30. </dependency> -->
  31. </dependencies>

Java代码

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. /**
  6. * hive 的 jdbc驱动
  7. */
  8. public class HiveJdbc {
  9. public static void main(String[] args) throws Exception {
  10. //①加载驱动
  11. //Class.forName("org.apache.hive.jdbc.HiveDriver");
  12. //②创建连接 ,端口号固定是10000
  13. //用户名 密码
  14. Connection connection = DriverManager.getConnection("jdbc:hive2://ip:10000", "root", "root");
  15. // ③准备SQL , 访问default数据库的student,前提是有这个表,不然的话会报错
  16. String sql = "select * from default.student";
  17. // ④预编译sql
  18. PreparedStatement ps = connection.prepareStatement(sql);
  19. // ⑤执行sql
  20. ResultSet resultSet = ps.executeQuery();
  21. while (resultSet.next()) {
  22. System.out.println("name:" + resultSet.getString("name") + "---->age:" +
  23. resultSet.getInt("age"));
  24. }
  25. }
  26. }

控制台结果

你代码每连接一次,控制台就会出现这个东西.
jdbc方式连接hive - 图2