hive学习篇1

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能,它的本质就是将SQL转换成MapReduce程序。

Hive本身建立在Hadoop的体系结构上,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行。并按照该计划生成MapReduce任务后交给Hadoop集群处理。

Hive是一个数据仓库,它提供了数据仓库的部分功能:数据ETL(抽取、转换、加载)工具,数据存储管理,大数据集的查询和分析能力。

由于Hive是基于hadoop平台的,所以它有很好的扩展性(可以自适应机器和数据量的动态变化),高延展性(自定义函数),良好的容错性,低约束的数据输入格式。


 


Hive的存储是建立在Hadoop文件系统之上的。Hive本身没有专门的数据存储格式,也不能为数据建立索引,用户可以自由地组织Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符行分割符就可以解析数据了。

Hive中主要包含四种数据模型:表(Table)、外部表( External Table)、分区表(Partition)、桶(Bucket)。Hive中的表和数据库中的表的概念是类似的,每个表在Hive中都有一个对应的存储目录。

Hive操作

显示所有hive中的所有数据库:show databases;


创建数据库,数据名为test:create database test;


创建student表:hive> create table student (
                                     > sno bigint,
                                     > sname string,
                                     > sex string,
                                     > tel bigint)
                                     > row format delimited fields terminated by '\t';


为了测试我把我们班的人名单上传到了student表中

load data local inpath '/home/file/people.txt' into table student;

查询表的数据:select * from student;


在查询时也遇到了一些问题,一开始查询出来乱码,后来在网上查了查资料,我上传的文本的编码和linux中的终端编码不一样,于是我将我文本的编码改成了utf-8,于是查询出来就不乱码了。

初学hive,以后博客持续更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值