java 通过命令连hive_Hive-命令行基本操作和java API访问hive数据库

安装

首先说明hive的安装。

链接: http://pan.baidu.com/s/1DleVG 密码: mej4

这个链接是一个视频的链接,视频中讲解了如何安装hive。

关于视频中用到的资料文件,我已经上传到CSDN,请点击

命令行基本操作

命令行基本操作无非就是增删改查。

0818b9ca8b590ca3270a3433284dd417.png

进入hive的命令行模式,命令:hive

建议进入命令行模式使用Hive的安装目录下的bin目录下,因为可能当运行命令的当前目录下生成一些日志文件,时间久了,自己都不知道这些文件是做什么的了。

0818b9ca8b590ca3270a3433284dd417.png

命令:show databases;

分号作为命令行结束符。

0818b9ca8b590ca3270a3433284dd417.png

命令:use default;

show tables;

0818b9ca8b590ca3270a3433284dd417.png

创建表,并查询。

create table ti(id string);

show tables;

select * from ti;

0818b9ca8b590ca3270a3433284dd417.png

向表中加载数据

load data local inpath ‘/usr/local/id’ into table tb1;

没有local的话:

load data inpath ‘HDFS文件路径’ into table [tablename]

,则文件路径指的是HDFS文件系统

0818b9ca8b590ca3270a3433284dd417.png

加载数据之后,进行查询验证。

0818b9ca8b590ca3270a3433284dd417.png

删除表:

drop table tb1;

0818b9ca8b590ca3270a3433284dd417.png

这幅图是通过浏览器远程访问HDFS所看到的Hive管理的数据库的文件。HIve管理的数据库是使用HDFS文件系统的方式进行的。所以数据库的数据都是文件,并可以通过HDFS查看到。图中看到的就是数据表tb1的数据。

制表符进行分割

CREATE TABLE t2(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’;

分区表命令

CREATE TABLE t3(id int) PARTITIONED BY (day int);

LOAD DATA LOCAL INPATH ‘/root/id’ INTO TABLE t1 PARTITION (day=22);

桶表命令

create table t4(id int) clustered by(id) into 4 buckets;

set hive.enforce.bucketing = true;

使用桶加载数据 不能使用load data方式加载数据

insert into table t4 select id from t3;

外部表命令

create external table t5(id int) location ‘/external’;

JAVA API操作Hive数据库

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class HiveDemo {

public static void main(String[] args) throws Exception {

Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");

Connection connection = DriverManager.getConnection("jdbc:hive://centos:10000/default", "", "");

Statement stmt = connection.createStatement();

String querySQL="select * from default.tb1";

ResultSet resut = stmt.executeQuery(querySQL);

while (resut.next()) {

System.out.println(resut.getInt(1));

}

}

}

以上代码就是通过java api操作hive数据库,获取数据然后打印。

在运行上面的命令之前,需要在linux系统中启动hive的远程服务,命令如下:

hive –service hiveserver >/dev/null 2>/dev/null &

这条命令启动hive的远程服务,分毫不差,直接输入回车就可以了。然后运行上面的java 代码,运行结果如下:

0818b9ca8b590ca3270a3433284dd417.png

可以看到结果已经正确打印出来了。

关于代码,如果感兴趣,请点击我的github关注整个项目。整个项目中不仅仅本文提到的hive的简单操作,还有MapReduce,Zookeeper等简单的应用。欢迎关注。^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值