一、前提
在hadoop集群中一台机器安装hive,熟悉常用指令。
二、了解hive
1.hive是什么?
hive是facebook开源的应用于处理分析大量数据的数据仓库,hive封装了很多mapreduce的mr模型,客户端可以通过hql经过hive的匹配到mr模型,mr运算的结果返回给客户端。
hive的数据存放在hdfs,计算是mr,运行在yarn上,hive是数据结构的一种表映射关系,可以通过表查看数据,进行统计分析,但是延迟高,不适合做实时查看。
2.为什么用hive?
hql类似于sql,不用写mr程序,简单可适用范围广,延迟高,可处理大量数据,可灵活自定义函数
3.hive与数据库的区别
数据存放地点:一个hdfs;一个是本地文件系统或块数据
数据的更新:hive数据读多写少,所有数据在加载时都确定好了;数据库数据经常更新
索引:hive在加载中不过对数据进行处理,不需要对某些key加索引,要访问某些特定数据,需要暴力扫描整个数据,访问延迟高,mr引入,可以并行处理,仍然可以接受。数据库会对一个或者几个列建立索引,访问速度快,延迟低
执行引擎:hive时mr,数据库有自己的执行引擎
可扩展性:hive是依赖于hadoop,扩展性是一致的,数据库扩展是有瓶颈的
数据规模:hive是运行于集群上的,可并行计算,数据库规模很小
三、主要用法
hql编写