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

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

hive脚本的三种执行方式

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

经过这三种方式能够不用进入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'
复制代码

到这里数据咱们已经导入进去了。那这个时候可能就会有人问,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还有不少强大的地方你们能够详细去学习了解

相关文章
相关标签/搜索