bd-hadoop-mr-intro



bd-hadoop-mr-intro

0 0


bd-hadoop-mr-intro

Hadoop M-R Intro

On Github zhanghuabin / bd-hadoop-mr-intro

Hadoop M-R 简介

姓名:张华彬

日期:2014-02-20

(一) 基本原理

计算模型:分治与归约

InputFormat

Mapper/Combiner

Sampler/Partitioner

Reducer

OutputFormat

M-R Job 职责划分

(二) 环境准备

Hadoop Distribution

Cloudera HortonWorks AWS EMR

Local Dev Environment

VMWare / VirtualBox CDH 4.4.0-1 QuickStart / HortonWorks 2.0 Windows+Cygwin / Linux / Mac Configure no-pwd SSH logon

(三) 示例:单表连接

目标:查找祖孙关系

Tom,Lucy
Tom,Jack
Jone,Lucy
Jone,Jack
Lucy,Mary
Lucy,Ben
Jack,Alice
Jack,Jesse
Terry,Alice
Terry,Jesse
Philip,Terry
Philip,Alma
Mark,Terry
Mark,Alma

设计思路

看作左右两张表[Child, Parent]和[Child, Parent] 左表的Parent与右表的Child连接 去掉连接的两个字段然后输出 Shuffle阶段会把相同Key的Value放到一起 所以把待连接的两个字段作为Key在Mapper中输出即可 Mapper输出的Value要根据Key是Parent还是Child打上标记以供Combiner去冗余和Reducer输出最终结果 被Combiner去冗余后,Reducer拿到的都是符合祖孙关系的Key-Values Reducer需要从Values中将左表的Child和右表的Parent分别置入一个列表,然后对这两个列表求笛卡尔积即为最终结果

Diagram 1

Diagram 2

Diagram 3

第一行

分别以Child和Parent做Key输出这一行,并加上一个用于区分左右表的标志

Diagram 4

Shuffle/Order时会把Key相同的Value放到一起

从左表(1)得到Grand Child,从右表(0)得到Grand Parent,分别置入各自的一个List

Diagram 5

Grand Children / Grand Parents

笛卡尔积

(四) 参考实现

(五) Q&A

「谢谢」