首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

企业大数据平台MapReduce应用之Join实践!

企业大数据平台MapReduce应用之Join实践!

【IT168 评论】在《Hadoop从入门到精通》大型专题的上半部分(专题链接见文末),我们讲解了Hadoop基本原理并且知道如何在Hadoop中组织、移动和存储数据。接下来,我们将探讨如何简化企业大数据技术应用。本章主要研究大数据模式,针对优化MapReduce操作技术,例如对大型数据集进行连接和排序,这些技术将让任务运行更快,并允许更有效地使用计算资源。

图6.1 不同类型的Join策略,显示为维恩图。阴影区域显示在连接中保留的数据。

日志数据集显示可以从应用程序或Web服务器日志中提取一些基于用户的活动。数据包括用户名,操作和源IP地址,以下是完整的数据集:

让我们先看一下应该根据数据选择哪种Join方法。

图6.2 用于选择Join策略的决策树

图6.3 使用过滤器和投影来减少数据大小

在连接中使用过滤器的挑战是:所加入的所有数据集都可能包含要过滤的字段。如果是这种情况,请查看使用Bloom过滤器解决此挑战。

表6.1存储格式及其下推支持

图6.4仅map的复制Join

要执行此Join,首先需要将要加入的两个文件复制到HDFS中的主目录:

Hive

不再强调map-join提示Hive 0.11实现了一些更改,这些更改表面上删除了map-join提示作为SELECT语句的一部分,但是不清楚在哪些情况下不再需要提示。全连接或右外连接不支持map端Join,它们将作为重新分区Join执行(reduce端连接)。

图6.5构成Semi-join的三个MapReduce作业

图6.6 Semi-join中的第一个作业生成一组存在于日志文件中的唯一用户名。

第一个作业的结果是出现在日志文件中的一组唯一用户。

图6.7 Semi-join中的第二个作业从日志数据中缺少的用户数据集中删除用户。

图6.8 Semi-join中的第三个作业将Job2生成的用户与原始用户日志组合在一起。

输出显示Semi-join和最终Join输出中作业的逻辑进展。

图6.9 用作复合Join的输入已排序文件示例

复合Join要求输入文件按键排序(在我们的示例中是用户名),因此在运行示例之前,需要对这两个文件进行排序并将它们上传到HDFS:

Hive

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105A0LK6A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券