mirror of
https://github.com/DistSysCorp/ddia.git
synced 2024-12-25 12:20:22 +08:00
fix typo
This commit is contained in:
parent
d349cb36e5
commit
b805e64375
4
ch10.md
4
ch10.md
@ -385,11 +385,11 @@ reduce 侧的连接的好处在于,你不需要对输入数据有任何的假
|
||||
|
||||
如,设想在图 10-2 对应的场景中,用户资料数据足够小,能够装入内存。在这种情况下,当 Mapper 启动时,可以先将用户资料分布式文件系统中读取到内存的哈希表中。一旦加载完毕,mapper 可以扫描所有的用户活动事件,对于每一个事件,在内存哈希表中查找该事件对应用户资料信息,然后连接后,输出一条数据即可。
|
||||
|
||||
但仍然会有多个 Mapper 任务:join 的**大数据量输入侧**(在 10-2 中,用户活动事件表是大输入测)每个文件块一个 mapper。其中 MapReduce 任务中的每个 Mapper 都会将小输入侧的数据全部加载进内存。
|
||||
但仍然会有多个 Mapper 任务:join 的**大数据量输入侧**(在 10-2 中,用户活动事件表是大输入侧)每个文件块一个 mapper。其中 MapReduce 任务中的每个 Mapper 都会将小输入侧的数据全部加载进内存。
|
||||
|
||||
这种简单高效的算法称为**广播哈希连接**(broadcast hash joins):
|
||||
|
||||
1. **广播(broadcast)**:处理大数据测每个分片的 Mapper 都会将小数据测数据全部载入内存。从另外一个角度理解,就是将小数据集**广播到了**所有相关 Mapper 机器上。
|
||||
1. **广播(broadcast)**:处理大数据侧每个分片的 Mapper 都会将小数据侧数据全部载入内存。从另外一个角度理解,就是将小数据集**广播到了**所有相关 Mapper 机器上。
|
||||
2. **哈希(hash)**:即在将小数据集在内存中组织为哈希表。
|
||||
|
||||
Pig(replicated join)、Hive(MapJoin)、Cascading 和 Crunch 都支持这种连接方法。
|
||||
|
Loading…
Reference in New Issue
Block a user