多易 Hive
一些 基础逻辑 和 细节的流程。
map-reduce map task: MR App Master . Yarn Child.
spark - driver -executor
主管 进程 MR—MR App Master Spark :Driver。
Executor ==shuffleMap Task 。。 Result task
MR == Map Task Reduce Task.
Map Task :Record Reader – 决定 读取方式。 读一条 执行 Map方法写入缓冲区。 一个线程 读写 缓冲区 另外一个线程 做检查 缓冲区是否满了。
缓冲区 做排序—>>>> k v–写入本地磁盘。
没有数据片 后 把溢出的文件做一个合并。 环形 缓冲区 溢出之后 会有 一个索引文件 记录偏移量。
Combiner -->>>
reduce 的工作逻辑---->>>
可以做 聚合。
讲讲 迭代器---->>>> 读取数据的方式 核心思想 是屏蔽掉 底层数据存储的细节。 用户通过 统一的 接口访问 不同存储中的数据,
hasNext next 方法。
iterable : .iterator~.
Java 中 集合都实现了 iterable。
JDBC ResultSet 本质也是迭代器
Reduce 拉取 数据做处理。 类似于迭代器
迭代器 中 grouping-Comparator 判断 分组依据。当前Kv和
不希望 默认key 进行分组。
MR 读取 的数据 取决于Record Reader —>>>
Map Task ==== Reader 读数据。
lsof -i :port 查看端口冲突
Zookeeper 相关。