关闭

hive学习篇1

160人阅读 评论(0) 收藏 举报
分类:

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,以后博客持续更新。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1607次
    • 积分:56
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档