Hive在Java中的jdbc使用
来源:互联网 发布:三只眼 网络行为管理 编辑:程序博客网 时间:2024/05/21 10:23
hive的本地模式和远程模式有什么区别
hive本质上是将sql语法解析为mapreduce的过程,既然如此它就必须提交mapreduce任务到resoucemanager,那么它如何提交?就是通过hadoop提供的命令hadoop jar命令来提交。
本地模式:简单的理解,hive客户端仅供本地使用,直接使用hive命令,不需要指定IP 端口
远程模式:简单的理解,将hive发布成一个服务进程,通过hive –service hiveserver命令,那么其hive客户端就可以连接hive的服务进程其他客户端可以是jdbc方式、hive提供的beeline命令等,既然要连接远端的hive服务进程,那自然需要指定IP 端口,这里的IP指的是hive服务进程所在的IP,端口自然也是,也自然与hadoop无关。所以不要混淆
hive的三种连接方式
hive 命令行模式
hive –service cli
hive web界面的 (端口号9999) 启动方式
hive –service hwi &
hive 远程服务 (端口号10000) 启动方式
hive –service hiveserver &
hive –service hiveserver -p 10002 (指定端口)
hive中jdbc使用
- 创建表
hive> create table employee(eid int, name String, dept String, yoj String)
ROW FORMAT DELIMITED FIELDS TERMINATED BY “,”
LINES TERMINATED BY “\n” STORED AS TEXTFILE; - 创建一个maven项目添加maven仓库依赖
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc --> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.2.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-metastore --> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-metastore</artifactId> <version>1.2.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-metastore --> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>1.2.1</version> </dependency>
- Java测试代理案列
package com.hyg.hadoop.hive;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class HiveJdbcTest { private static String driverName = "org.apache.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { try { Class.forName(driverName); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(1); } Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", ""); Statement stmt = con.createStatement(); String tableName = "employee"; // describe table String sql = "describe " + tableName; System.out.println("Running: " + sql); ResultSet res = stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1) + "\t" + res.getString(2)); } //load data sql = "load data local inpath '/root/employee.txt' overwrite into table "+tableName; System.out.println("Running: " + sql); //stmt.executeQuery(sql); System.out.println("Load Data into "+tableName+" successful"); //show table data sql = "select * from employee"; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1)+"--"+res.getString(2)+"--"+res.getString(3)+"--"+res.getString(4)); } }}
启动后台hiveserver遇见问题
Exception in thread "main" java.lang.ClassNotFoundException: org.apache.hadoop.hive.service.HiveServer at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:274) at org.apache.hadoop.util.RunJar.main(RunJar.java:205)^C[1]+ Exit 1 hive --service hiveserver
解决办法: hive –service hiveserver2 使用hiveserver2
加载hive驱动报错
*驱动路径为:*org.apache.hive.jdbc.HiveDriver
阅读全文
0 0
- Hive在Java中的jdbc使用
- Java HIVE 使用Jdbc连接Hive
- 使用JDBC访问Hive表中的数据
- Java 使用JDBC连接 Hive(HiveClient On JDBC)
- H2数据库在JAVA(JDBC)中的基本使用
- H2数据库在JAVA(JDBC)中的基本使用
- Hive使用JDBC连接
- hive jdbc使用
- 使用JDBC访问Hive
- java jdbc 连接hive
- 在java中使用jdbc
- Spark SQL在Hive中的使用
- 如何使用Java程序通过JDBC访问HDInsight Hive Server
- Java使用JDBC连接Hive(新版本)API封装
- Java通过JDBC连接Hive
- Hive JDBC Java示例项目
- Java通过JDBC操作Hive
- java 通过JDBC连接hive
- idea更换主题
- python 中自定义模块的导入总结
- jq添加插入元素
- CentOS下安装JDK的三种方法
- Lambada表达式
- Hive在Java中的jdbc使用
- 高斯牛顿法(C++实现)
- 实现基于LNMP的电子商务网站部署
- Vue.js与React的全面对比
- elasticsearch java api 5.5.1 依赖
- Spring Boot Start
- 欢迎使用Markdown编辑器写博客
- 【线程同步与互斥】条件变量
- 【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集