• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
开发者必备的Hadoop利器--White Elephant
发布日期:2016-8-1 15:8:30

  LinkedIn是全球最大的职业社交网站,它从2002年12月创立到2013年初,LinkedIn注册用户已经到2亿,平均每秒增加一个新用户,86%的“财富100强企业”正使用LinkedIn的付费解决方案,270万个公司主页在这里安家落户,每年用户发起超过几十亿次搜索。为应对这些超大数据,LinkedIn使用Hadoop进行产品开发,且为了更好地理解LinkedIn在所有用例中的Hadoop集群使用情况,他们创建了White Elephant。

  下面为文章全文:

  随着Hadoop的发展,调度、容量规划与计费已经成为其关键问题,这些都是公开的问题。今天,我们高兴地宣布我们开源LinkedIn的解决方案:White Elephant。

  在LinkedIn,我们使用Hadoop进行产品开发(如People You May Know与Endorsements那样的预测分析应用),为更好地理解我们在所有用例中的Hadoop集群使用情况,我们创建了White Elephant。

  尽管Ganglia这样的工具提供了系统级指标,但是我们还是希望能了解每个用户在任何时间所使用的资源。White Elephant解析Hadoop日志为Hadoop集群提供了逐层向下监视以及任务统计汇总,包括总任务时间、CPU时间、使用的时段和失败的工作项。

  White Elephant满足了下面几个需求:

  (1)容量规划:可计划未来的硬件需求,了解作业资源使用量的增长。

  (2)调度:White Elephant具有在利用率较低的时段安排工作的能力,最大限度地提高集群效率。

  (3)计费:Hadoop集群的容量有限,所以在多租户环境中White Elephant可针对作业商业价值的大小来分配使用的资源。

  在这篇文章中,我们将分享White Elephant的架构,并且展示了一些它提供的可视化效果。我们已经在GitHub上公布代码,可自己尝试一下!

  架构

  White Elephant架构图


  图1

  如图1所示,这张图里分别有A、B、C这三个Hadoop网格,White Elephant将计算统计如下:

  (1)计算: MapReduce作业的顺序通过Job Executor进行协调,解析上传的日志并计算汇总统计。

  (2)上传任务:任务定期运行在Job Tracker上,并逐步拷贝新的日志文件到一个Hadoop网格进行分析。

  (3)查看:一个查看器应用逐步加载汇总统计数据,缓存到本地,并公开一个Web界面,该做法可以细分Hadoop集群的统计数据。

  例子

  下面是我们实际使用的情况:在过去几个月里我们注意到集群使用情况的增加,但是没人对此负责。我们可使用White Elephant来调查这个问题。

  如图2所示显示了过去几个月里一个示例数据集每周被使用的总时数,你会注意到,每周的集群使用量基线自1月中旬以来,从6000小时大约增加到了10000小时。


  图2

  在图2中,整个数据集都被挑选出来检查,所以所有用户的数据都被组合在一起,让我们看看前20名用户的堆叠图。


  图3

  现在我们可看到前20名用户的个人每周使用情况。剩下的46个用户已经被组合成一个单一的指标。几个用户在可疑的集群使用组中脱颖而出,因此我们将进行更深的挖掘。

  我们可将鼠标悬停在图例上来突出显示这些用户。


  图4

  使用拖放操作,我们可重新安排列表以便这些用户出现在底部。


  图5

  看起来像4个用户已经展示出显著的使用率增加:用户1和用户2的使用量在1月中旬开始增加,而用户43和用户65的使用量在12月左右开始稳步攀升。

  若我们不希望看到这些用户的集群使用情况,我们可在图例中取消对他们的选中。


  图6

  一旦我们排除了这些用户,我们可看到集群的使用情况在这段时间内没有明显地改变,所以我们已经确定了我们的罪魁祸首。

  让我们追溯这四个用户,用户可选择一个多选控制,一个过滤器使它很容易通过名字来搜索特定的用户。


  图7

  怎样将这四个用户与其他人相比呢?为方便起见,其余用户被聚合在一起,包括:只选择总指标,并将其移动到顶部。


  图8

  通过White Elephant,我们已找到了问题所在,这要归功于Hadoop使用情况中前所未有的可视性。我们甚至可得到一个表,从CSV中列出被查询的数据。


  图9

  开源

  White Elephant是开源的,且可在Apache 2许可下自由使用。这对阿里云来说,试一次值得学习的好时机。