Hive 学习笔记
Hive 简介
Hive 是建立在 Hadoop 上的数据仓库基础构架,可以用来进行数据提取转化加载。
Hive 架构
- 用户接口:CLI, Client, WUI
- 通常存储在 mysql
- 解释器、编译器、优化器、执行器
- Hadoop:用 HDFS 进行存储,用 MapReduce 进行计算
Hive 特点
- 不支持对数据的改写和添加
- 不会对数据中的某些 key 建立索引,需要扫描整张表
- 数据规模大到超过数据库的处理能力的时候,Hive 的并行计算能体现出优势
可以调用 python
CREATETABLE u_data_new (
userid INT,
movieid INT,
rating INT,
weekday INT)
ROWFORMAT DELIMITED
FIELDSTERMINATED BY ‘\t’;
add FILEweekday_mapper.py;
INSERTOVERWRITE TABLE u_data_new
join 时,每次map/reduce 任务的逻辑
reducer 会缓存 join 序列中除了最后一个表的所有表的记录,再通过最后一个表将结果序列化到文件系统。这一实现有助于在 reduce 端减少内存的使用量。实践中,应该把最大的那个表写在最后(否则会因为缓存浪费大量内存)