用 Hadoop 进行分布式数据处理,第 3 部分: 应用程序开发
2010-08-11 00:00:00 来源:WEB开发网# echo "Hadoop is an implementation of the map reduce framework for " \
"distributed processing of large data sets." > input
#
通过单词输入,现在您可以测试您的 mapper 脚本,如清单 7 所示。回想此脚本简单地将输入标记到键值对,此处每个值都将是 1(非惟一输入)。
清单 7. 测试 mapper 脚本
# cat input | ruby map.rb
Hadoop 1
is 1
an 1
implementation 1
of 1
the 1
map 1
reduce 1
framework 1
for 1
distributed 1
processing 1
of 1
large 1
data 1
sets. 1
#
到目前为止,一切都很顺利。现在,在原始流格式中将整个应用程序一起调出。在清单 8 中,通过 map 脚本传递您的输入、排序输出(可选步骤)、然后通过 reduce 脚本传递由此产生的中间数据。
清单 8. 使用 Linux 管道的简单 MapReduce
# cat input | ruby map.rb | sort | ruby reduce.rb
large 1
of 2
framework 1
distributed 1
data 1
an 1
the 1
reduce 1
map 1
sets. 1
Hadoop 1
implementation 1
for 1
processing 1
is 1
#
使用 Hadoop 的 Ruby
在 shell 环境中您的 map 和 reduce 脚本按预期工作,通过 Hadoop 将它们放入测试中。我将会跳过 Hadoop 安装任务(参考本系列的 用 Hadoop 进行分布式数据处理,第 1 部分:入门 或 用 Hadoop 进行分布式数据处理,第 2 部分:进阶 以便建立 Hadoop 并使其运行)。
更多精彩
赞助商链接