选择混合分析环境
美国《InfoWorld》 发表于:13年02月27日 09:12 [转载] DOIT.com.cn
Evernote最终选择了由Hadoop和ParAccel组成的混合解决方案。目前,一个10个节点的Hadoop集群能够存储所有的历史数据,以及处理用于分析的数据预处理工作。预算方面,Hadoop是一个他们能够负担得起的解决方案,这要归功于 Hadoop的开源许可证,及其能够使用商业硬件进行扩展的优势。
作为一个MPP分析数据库,ParAccel电子表格能够以超高的速度进行查询。在Evernote公司中,3个节点的ParAccel列式分析数据库能够处理对大量派生表的查询。作为节点的SuperMicro服务器,每个都配备有两个L5630四核处理器、192GB内存、10Gbps网络,以及一个能够与Red Hat Enterprise Linux进行手动配置与设置的RAID5固态硬盘。
最后,与主流开源报告的解决方案一样,JasperReports也一个简单易用的解决方案。为了查询 ParAccel服务器以及生成的多种格式的日报,Evernote的团队选择了Jaspersoft的开源JasperReports服务器。(近期 ParAccel和JasperReports服务器混合环境也得到了亚马逊的支持。亚马逊正使用这两款工具强化其Redshift托管分析环境。)
Evernote每天使用JasperReports服务器生成10多份图表与报告
出于安全原因,这一分析环境被放在了一个独立的网络上,并不与生产应用服务器相连。日常在线数据通过一个单向的网络连接被安全地推送到报告环境中。
部署Hadoop并协同工作
全部的原始数据首先将发送至Hadoop。在这里,数据将被归档并为输入至ParAccel进行日报和分析做好准备。随后,Evernote将使用Cloudera Hadoop进行分发,并使用Puppet进行配置管理。 Hadoop集群包括有6个配置了8个500GB硬盘的数据节点,总计可以存储24TB的原始数据。2个8核处理器和64GB内存在跨集群中运行132个 MapReduce任务,每个任务可拥有超过2GB的内存。
此外,作为冗余,Evernote还在两个服务器上运行了一个单独的Hadoop Job Tracker,在一个客户端节点运行Hive与Hue,这是两个针对Hadoop的关键开源工具。Hadoop集群可通过Hive抽象层被访问,后者提供了一个用于查询的类SQL接口。Hue是一个针对Hadoop的基于Web接口,其中包含了大量的实用应用,例如文件浏览器、工作追踪接口、集群健康监视器,以及一个创建个性化Hadoop应用的环境。
由Hive采集的用户活动数据与来自在线生产数据库的参照表每晚会被加载在ParAccel上。通过Hive所创建的派生表包含有针对常见报告中最佳表述的预切片信息。例如,除了某一时期以来每天、每周和每月的活动用户数量外,国家一览表每天每个国家只有一行。
由于ParAccel数据库和表单会针对快速数据聚合进行调整,因此与单独使用Hive相比,Evernote能够进行多类问题的查询。例如,查看某周内在德国哪个Windows版本的Evernote软件使用最为频繁,只需要3秒钟的时间。
Evernote如今拥有了一个现代化的分析环境,并且这个环境拥有足够的增长空间。由于有了 Hadoop,Evernote的团队拥有了将海量数据运营与日志数据归档的能力。更重要的是,它们可以在两个小时内加载和转换数百万条记录,而以往做这些工作需要花费10个小时或是更长的时间。同时得益于ParAccel,Evernote的团队能够执行更为复杂的用户趋势分析操作,并通过 JasperReports服务器提供最终结果。
由于能够存储所有的历史数据、进行更快速的查询,以及每日自动生成质量报告,Evernote能够从更深的层次观察客户使用其产品的方式,持续提升和优化自己的产品。