avatar
MapReduce的面试题# JobHunting - 待字闺中
B*4
1
求教一道关于MapReduce的面试题:
有一个非常大的(>1TB)的String,放在Hadoop的多个Data Nodes上。如何用MapReduce
来reverse该String?
avatar
y*x
2
典型的题阿,说了存在datanode上,那每个node reverse,最后拼接起来
wei代码很少,production code得查查doc语法
avatar
b*5
3
你最后的reducer怎么弄? reducer一个machine?string fit不到一个machine上

【在 y***x 的大作中提到】
: 典型的题阿,说了存在datanode上,那每个node reverse,最后拼接起来
: wei代码很少,production code得查查doc语法

avatar
y*x
4
跟interviewer讨论阿,看看人家想要什么

【在 b**********5 的大作中提到】
: 你最后的reducer怎么弄? reducer一个machine?string fit不到一个machine上
avatar
b*5
5
你provide些choices, 看看

【在 y***x 的大作中提到】
: 跟interviewer讨论阿,看看人家想要什么
avatar
B*4
6
大概思路应该是这样的。
不过人家考我几个细节:
1)Key,Value 怎么定义?
2)你在mapper上倒序只是局部的,reducer必须在全局上倒序,你这个reducer如何知
道当初分配的datanode的顺序?

【在 y***x 的大作中提到】
: 典型的题阿,说了存在datanode上,那每个node reverse,最后拼接起来
: wei代码很少,production code得查查doc语法

avatar
s*r
7
肉姐,人家没要求结果存成一个file,显然是sharing啊,

【在 b**********5 的大作中提到】
: 你最后的reducer怎么弄? reducer一个machine?string fit不到一个machine上
avatar
y*x
8
最直接的可以记录每一段所在的整个string的offset
reverse后广播下,大伙一起更新
请大牛指正

【在 b**********5 的大作中提到】
: 你provide些choices, 看看
avatar
b*5
9
不需要remember offset, 就记住你的分段区好了, 我觉得。 比如你分了1000
blocks, 每个block的index记一下

【在 y***x 的大作中提到】
: 最直接的可以记录每一段所在的整个string的offset
: reverse后广播下,大伙一起更新
: 请大牛指正

avatar
r*s
10
cut into segments with serial number
reverse each segment and then
sort in reverse order

MapReduce

【在 B********4 的大作中提到】
: 求教一道关于MapReduce的面试题:
: 有一个非常大的(>1TB)的String,放在Hadoop的多个Data Nodes上。如何用MapReduce
: 来reverse该String?

avatar
C*y
11

我也觉得,直接index就行了
key就是index
value就是reverse后的
需要和起来么?需要的话,就直接把所有的index从头到尾走一遍,然后按顺序扔到文
件里面就好了?

【在 b**********5 的大作中提到】
: 不需要remember offset, 就记住你的分段区好了, 我觉得。 比如你分了1000
: blocks, 每个block的index记一下

avatar
j*3
12
mark
avatar
u*s
13
mark
avatar
a*s
14
牛肉姐MR题目还用想么?太tmd简单了。
就用default的inputsplit,输入kv是
offset of this line in a whole file : line content
map()做:line content reverse
输出kv是
-offset of this line in a whole file: reversed line content
reduce()直接输出value就是了,因为已经sort了。
avatar
f*r
15
只能保证每个reducer里的sort好,reducer之间不能保证
要么强制用一个reducer,要么用TotalOrderPartitioner

【在 a*****s 的大作中提到】
: 牛肉姐MR题目还用想么?太tmd简单了。
: 就用default的inputsplit,输入kv是
: offset of this line in a whole file : line content
: map()做:line content reverse
: 输出kv是
: -offset of this line in a whole file: reversed line content
: reduce()直接输出value就是了,因为已经sort了。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。