【发布时间】:2015-11-12 22:20:04
【问题描述】:
我正在阅读 Hadoop mapreduce 教程,并得出以下浅薄的理解。谁能帮忙确认一下我的理解是否正确?
Mapreduce 是一种聚合数据的方式
- 在分布式环境中
- 在非常大的文件中包含非结构化数据
- 使用 Java、Python 等
产生类似的结果,就像在 RDBMS 中使用 SQL 聚合函数可以完成的那样
select count, sum, max, min, avg, k2
from input_file
group by k2
- map() 方法基本上以水平数据 v1 为中心,即从 将输入文件分成垂直行,每一行都有一个字符串键 和一个数值。
- 分组将发生在洗牌和分区阶段 数据流。
- reduce() 方法将负责计算/聚合数据。
Mapreduce 作业可以组合/嵌套,就像 SQL 语句可以嵌套以产生复杂的聚合输出一样。
对吗?
在 Hadoop 之上使用 Hive,MR 代码将由 HiveQL 流程引擎生成。 因此从编码的角度来看,使用 Java 的 MR 编码将逐渐被高级 HiveQL 所取代。 这是真的吗?
【问题讨论】: