1. map reduce工作机制
map :
map task从split中读取数据 处理后输出key/value ,
对键值进行Partioner(分区)后, 存入到缓存区中,缓存区默认大小为100m;
当缓存区内容达到80m时, 启动溢写操作 , 把缓存区的内容写到一个溢写文件中。
在写入溢写文件之前,会对键值进行分区排序和合并(如果设置的话)。
当该map task处理完所有数据后, 需要对该map 生成的所有溢写文件进行merger(合并)操作,
生成一个文件。
reduce :
reduce task 接受到通知后, 就会拉取各个map task 的文件数据,放到缓存区中。
当缓存区内容达到阈值时, 同样执行溢写操作 ,生成溢写文件。
当把所有的map task上的文件数据读取完成后,会把生成的所有溢写文件进行merger(合并)操作,生成一个文件作为reduce task的输出数据。
2. hive
hive是一个基于hadoop的数据仓库工具 , 可以将结构化的数据映射成一张表,并且提供类sql功能
优点:
1.接口提供类sql查询功能 简单容易上手
2.避免了去写mapreduce 减少学习成本
3. hive延迟性比较高 常用于数据分析 对实时性要求不高的场所
4.处理大数据比较有优势
5.支持自定义函数
缺点:
1. hql表达能力有限
2.效率比较低
3.数据仓库
数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。
特征:
面向主题、集成性、稳定性和时变性,用于支持管理决策
分为
ODS 数据准备层
DWD 数据明细层
DWS 数据汇总层
DM 数据集市层
数据库和数据仓库的区别
1.数据库是面向事务的 数据仓库是面向主题的
2.数据库尽量避免冗余 数据库的设计意在引入冗余
3.数据库是为了捕获数据而设计 数据仓库是为了分析数据
4.数据库一般储存在线数据 数据仓库一般存储历史数据