大数据 java操作hive
版权声明:
本文为博主学习整理原创文章,如有不正之处请多多指教。
未经博主允许不得转载。
https://blog.csdn.net/qq_42595261/article/details/83022249
-
虚拟机上操作,保证hive数据库能正常连接进入。
如因退出没有用到命令(quit;),第二次进入则会报错。解决方法,切换到
[root@xcl ~]# cd apache-hive-2.1.1-bin/conf/
[root@xcl conf]# vi hive-site.xml
最后进行初始化命令为:schematool -initSchema -dbType mysql
在任意目录下输入hive,则ok。
-
创建数据库、在数据库中创建数据表,在本地“造数据”
Create databases text;
例:
CREATE TABLE t4(name String ,age int,likes ARRAY<String>,relation MAP<String,String>,location struct<country:String,city:String ,doornum:int>) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '^' MAP KEYS TERMINATED BY ':';
“造的数据”已经分好类
# 字段分割符是逗号
# 数组类型分隔符是^号
# map数据类型分割符是冒号
tom,18,lol^篮球^音乐,father:tom1^mother:lili,US^LOS^16
用load上传本地数据到表中
load data local inpath '/usr/local/apps/test1.txt' into table t4;
-
eclipse操作步骤(要配好maven创建maven项目)
-
maven项目需要的包,在“pom.xml”中添加
<dependency>
<groupId>org.apache.hive </groupId>
<artifactId>hive-jdbc </artifactId>
<version>2.1.1</version>
</dependency>
java连接hive代码:
//加载驱动
Class.forName("org.apache.hive.jdbc.HiveDriver");
//获取连接
String url="jdbc:hive2://192.168.1.90:10000/test";
Connection connection= DriverManager.getConnection(url,"root","");
//执行sql
PreparedStatement ps=connection.prepareStatement("SELECT * FROM table01 ");
//获取结果
ResultSet rs=ps.executeQuery();
while (rs.next()){
System.out.println("测试数据输出结果是:"+rs.getString(1));
}
//关闭连接
rs.close();
ps.close();
connection.close();
在代码中添加
注意:引的包全是sql包 引完后会报异常,抛出异常即可
如出现这个问题
解决方法:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.7</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>