经过hadoop之旅7-centerOS7 : Hive环境搭建相信搭建已经在本身的虚拟机上搭建好了hive的环境,今天带你们熟悉一下hive的基本使用java
经过这三种方式能够不用进入hive的命令行,接下来介绍命令行里处理hive操做c++
启动hive服务,进入hive的bin目录下,执行开服务的命令web
[root@master bin]# ./hive --service metastore &
复制代码
接着执行hive命令,进入hive本地命令行模式sql
[root@master bin]# ./hive
复制代码
接下来建立数据库mmcc
,并使用该数据库数据库
hive>create database mmcc;
hive>use mmcc;
复制代码
而后咱们就能够进行建表操做,如今建一张普通的人员表bash
create table if not exists person(
name String,
age String
)
comment '这是注释'
row format delimited //进行格式化限制
fields terminated by ',' //表示导入时,行字段按‘,’隔开
lines terminated by '\n' //表示行终止符按\n来算,即遇到回车就算下一行
stored as textfile; //表示最终导入的数据以文件形式存储
复制代码
而后能够经过desc person
查看表结构oop
在本地或者hdfs准备好一个文件,本文演示本地导入数据到hive,里面的内容就是person
的信息post
vi /home/mmcc/input.txt
hello,java
hello,world
hello,c++
hello,java
hello,c#
复制代码
接下来咱们演示如何导入数据,导入数据的语法是:学习
load data [local] inpath 'path' [overwrite] into table xxxx;spa
[root@master mmcc]# ./hive-2.3.3/bin/hive -e 'load data local inpath "/home/mmcc/input.txt" into table person'
复制代码
若是是hdfs上的文件只须要去掉local
,把path换成远程hdfs路径便可
接下来就能够经过sql语句进行查询操做了
[root@master mmcc]# ./hive-2.3.3/bin/hive -e 'select * from person'
复制代码
selec * from person
很快就出来了。这是由于这个语句只是把存在文件里的内容输出而已,不过会生成mapreduce做业。接下来咱们能够作一下条件查询,好比统计一共有多少我的,语法和sql同样。
[root@master mmcc]# ./hive-2.3.3/bin/hive -e 'select count(1) from person'
复制代码
接下来你们就会发现,这条sql被转换成了一个mapreduce做业
http://master:8088
能够看到经过hive,咱们就不用再写MapReduce做业了,能够直接将数据导入到hive中,经过sql来作离线数据分析。固然hive还有不少强大的地方你们能够详细去学习了解