diff --git a/ch10.md b/ch10.md index fc1a22c..dc8ebdc 100644 --- a/ch10.md +++ b/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 都支持这种连接方法。