安装
首先说明hive的安装。
链接: http://pan.baidu.com/s/1DleVG 密码: mej4
这个链接是一个视频的链接,视频中讲解了如何安装hive。
关于视频中用到的资料文件,我已经上传到CSDN,请点击
命令行基本操作
命令行基本操作无非就是增删改查。
进入hive的命令行模式,命令:hive
建议进入命令行模式使用Hive的安装目录下的bin目录下,因为可能当运行命令的当前目录下生成一些日志文件,时间久了,自己都不知道这些文件是做什么的了。
命令:show databases;
分号作为命令行结束符。
命令:use default;
show tables;
创建表,并查询。
create table ti(id string);
show tables;
select * from ti;
向表中加载数据
load data local inpath ‘/usr/local/id’ into table tb1;
没有local的话:
load data inpath ‘HDFS文件路径’ into table [tablename]
,则文件路径指的是HDFS文件系统
加载数据之后,进行查询验证。
删除表:
drop table tb1;
这幅图是通过浏览器远程访问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 代码,运行结果如下:
可以看到结果已经正确打印出来了。
关于代码,如果感兴趣,请点击我的github关注整个项目。整个项目中不仅仅本文提到的hive的简单操作,还有MapReduce,Zookeeper等简单的应用。欢迎关注。^_^