用 Hadoop 进行分布式数据处理,第 3 部分: 应用程(6)

Hadoop 的其他应用程序

Hadoop 可用于许多应用程序上,其已超越了为大型数据集简单计算字数的工作。所有这一切的需要就是用矢量格式表达 Hadoop 基础设施可以使用的数据。虽然规范的示例使用矢量表达作为键和值,但是并没有限制您如何来定义值(例如一些值的汇总)。在更加丰富的应用程序集中此灵活性可以为 Hadoop 创造新的机会。

一个一直适合 MapReduce 字数统计模型的有趣的应用程序正在把 Web 服务器访问的频率制表(在开创性 Google 文章中讨论)。对于此应用程序来说,URL 作为键来服务(从 Web 服务器访问日志摄取)。reduce 过程的结果是基于 Web 服务器日志的给定 Web 站点的每次 URL 访问的总数。

在计算机学习用户程序中,Hadoop 已经作为处理大量 GA 个体的规模遗传算法的一种方法(潜在解决方案)。map 过程执行传统的遗传算法,从本地池中搜索最佳单个解决方案。然后 reduce 应用程序成为来自 map 阶段的单个解决方案的集成。这会允许单个节点识别最佳解决方案,然后允许这些解决方案在最适于生存的分布式显示的 reduce 阶段中相互竞争。

另外一个有趣的应用程序被创建用于识别僵尸网络的垃圾邮件。此过程的第一步将会为减少垃圾邮件为目的而对电子邮件按来自给定组织而进行分类(基于一组指纹)。根据过滤的这些数据,对以特定方式(例如参考电子邮件正文中的相同链接)连接的邮件生成一个图表。然后这些相关电子邮件会减少至主机(静态或动态 IP 地址)以识别有问题的僵尸网络。

在应用程序之外通过 map 和 reduce 基元来查看世界,Hadoop 作为在计算机集群之间分配工作的方式非常有用。 Map 和 reduce 并非必须强制某种特定类型的应用程序。相反地,Hadoop 可以被视为一种可以同时将数据和算法分配到主机以获得更快速的并行处理速度的方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4cf2e56dc1e6304df90ceba70fac6bce.html