hadoop之旅8-centerOS7 : Hive的基本操作

通过hadoop之旅7-centerOS7 : Hive环境搭建相信搭建已经在自己的虚拟机上搭建好了hive的环境,今天带大家熟悉一下hive的基本使用

hive脚本的三种执行方式

  1. hive -e 'sql'
  2. hive -f 'sql.file'
  3. hive jdbc 代码执行脚本

通过这三种方式可以不用进入hive的命令行,接下来介绍命令行里处理hive操作

首先

启动hive服务,进入hive的bin目录下,执行开服务的命令

[root@master bin]# ./hive --service metastore &
复制代码

接着执行hive命令,进入hive本地命令行模式

[root@master bin]# ./hive
复制代码

建库

接下来创建数据库mmcc,并使用该数据库

hive>create database mmcc;
hive>use mmcc;
复制代码

建表

然后我们就可以进行建表操作,现在建一张普通的人员表

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查看表结构

导入数据

本地或者hdfs准备好一个文件,本文演示本地导入数据到hive,里面的内容就是person的信息

vi /home/mmcc/input.txt
hello,java
hello,world
hello,c++
hello,java
hello,c#
复制代码

接下来我们演示如何导入数据,导入数据的语法是:

load data [local] inpath 'path' [overwrite] into table xxxx;

[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'
复制代码

到这里数据我们已经导入进去了。那这个时候可能就会有人问,hive不是把sql转换成mapreduce吗?为什么我运行 selec * from person很快就出来了。这是因为这个语句只是把存在文件里的内容输出而已,不过会生成mapreduce作业。接下来我们可以做一下条件查询,比如统计一共有多少个人,语法和sql一样。

[root@master mmcc]# ./hive-2.3.3/bin/hive -e 'select count(1) from person'
复制代码

接下来大家就会发现,这条sql被转换成了一个mapreduce作业

登录web页面查看mapreduce作业,打开http://master:8088可以看到

在此处显示其实一个mapreduce作业已经运行了起来。

通过hive,我们就不用再写MapReduce作业了,可以直接将数据导入到hive中,通过sql来做离线数据分析。当然hive还有很多强大的地方大家可以详细去学习了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值