企业可以利用Hadoop以及所有与它相关的技术设计大数据环境,以满足其特定的需求。但把所有的技术集成在一起并不是一件容易的事。
IT团队寻求构建大数据架构时有大量的技术可供选择,他们可以混合搭配各种技术以满足数据处理和分析需求。但是有一个问题存在:把所有需要的技术框架组合到一起是一项艰巨的任务。
在不断扩展的Hadoop生态系统中,选择和部署合适的大数据技术是一个长期反复的过程,周期要以年计。除非公司管理者愿花大量财力和资源来加速推动项目。选择技术的过程中有失误判断是很常见的,一家公司的架构蓝图不一定适用于另一家组织,即便是完全相同的行业也不行。
Bryan Lari是美国德克萨斯州大学MD安德森癌症研究中心(位于休斯顿)研究分析主任,他说:“我经常跟人说,这不是像你在亚马逊下个订单或者从苹果商店买个东西那么简单的事。这是一件复杂的事,它需要一个过程。我们在半年或者一年之内是做不完的。这也不是可以套用公式就能应用的技术,尽管有很多案例或者用户有成功经验,但我们也可能用不同的工具来满足我们的需求。”
MD安德森的大数据环境集中在Hadoop集群中,在三月份的时候投入了生产环境,初步打算用来处理病人房间监视设备传输回来的重要信号数据。不过,数据湖平台还包括HBase(与Hadoop配合的NoSQL数据库),Hive(Hadoop支持SQL的软件),还有各种其他Apache开源技术,例如:Pig、Sqoop、Oozie和Zookeeper。此外,这家癌症治疗和研究组织还部署了Oracle数据仓库作为信息库来支持分析和报表应用,还有IBM的Watson认知计算系统提供自然语言处理和机器学习功能。未来出现新的数据可视化、治理和安全工具也必然会参与进来。
MD安德森癌症中心的IT团队在2015年初就开始使用Hadoop。为了演示可能的应用情况同时熟悉该技术,该中心首先使用基本的Apache Hadoop软件构建了试点集群环境。后来,他们部署了Hadoop Hortonworks分布式架构用于生产环境。
Vamshi Punugoti是MD安德森癌症中兴研究信息系统的副主任,他说从这次试点项目中得到的经验可以使他们处理架构调整更容易。随着新的大数据工具出现,总会有调整架构的可能性,一定需要功能增强或者替换组件。Punugoti说:“这是个持续更新的过程,包括我们收集到的数据都在不断变化着。如果我们认为(现有架构)可以处理一切那就太天真了。”
演进更好的架构
Uber平台工程师团队花了大约一年时间设计了多层大数据架构,但是这么多技术组件搭建的有点仓促。Uber公司Hadoop团队高级工程师Vinoth Chandar说,该公司的现有系统跟不上业务运营带来的快速增长的数据量。结果,大部分数据不能进行实时分析,Chandar认为这对于Uber公司倡导实质性“实时叫车”理念来说是个大问题。
为了帮助运营经理实现数据驱动,Chandar和他的同事们搭建了Hadoop数据湖环境,其中包括HBase、Hive、Spark处理引擎、Kafka消息队列系统,还有其它一些技术。其中一些技术是内部构建的,例如:有一款数据提取工具Streamific。
有了该架构之后,Uber公司将追赶大数据和分析的艺术状态。但是,这并不是容易做到的。他半开玩笑地补充说:“为了把这些技术组件整合到一起,我们十个人几乎一年没有睡觉。”
架构的挑战对于组织来说可不是闹着玩的。Gartner咨询公司预测,到2018年,70%的Hadoop部署将无法实现他们节约成本和收入增长的目标,主要原因是技能不足和技术整合困难。Gartner公司分析师Merv Adrian说,整合障碍还在加剧,Hadoop分发商与大数据技术有关的数字还在稳步攀升,这代表了部署Hadoop的公司对Hadoop技术支持的需求量趋势。
在2016年太平洋西北地区BI峰会上,Adrian列举了46种Hadoop相关的开源技术创新,这些产品都是由一家或者多家分发商提供支持服务的。但是,要把这些组件放到大数据架构中却是留给使用方的工作。“大多数Hadoop项目都像是艺术工作,我们都要把这些技术组件整合到一起使用。”
执行过程中的变化
这种整合拼凑工作是非常艰巨的任务,即便Hadoop不是框架中的一部分。Celtra公司提供了一个平台可以设计在线显示和视频广告,有几部分已经在基于云的处理架构中陆续部署了,现在正把Spark及其SQL模块整合到Amazon简单存储服务(S3)、MySQL关系型数据库和Snowflake计算的数据仓库系统。
Grega Kespret是这家波士顿公司的分析总监,他说:“我们经历了许多尝试和错误。比较有挑战的是要设计一套架构满足业务需求,但还不能过度设计。”他提醒说,如果你做了,可能会以一片混乱而告终。
最开始的时候,Celtra公司通过网站访问者和S3中的其它可跟踪事件收集广告交互数据,然后使用Spark作为ETL引擎(抽取、转换和加载)聚合信息,分析MySQL中的运营数据用于报表。但是,原始的事件数据是很难分析的。Celtra公司增加了一套独立的基于Spark的分析系统,但是仍然需要该公司的数据分析师们团结一致去清理和验证事件数据,这个过程的工作是很容易出错的。
在2015年底的时候,Kespret和他的团队经过各种尝试最终放弃了其它技术,选择了Snowflake作为事件数据存储系统,然后把数据按用户会话进行组织之后会存储到MySQL,这样数据分析师用起来更方便。
Snowflake系统在去年四月份投入生产使用,比该软件软发布较早一点。Kespret说,下一步是要在Snowflake中存储数据,评估第二步ETL过程,然后处理数据存储到另一套MySQL数据库中。
大数据开发的“狂野西部日”
Hadoop合作设计者Doug Cutting认为,技术选择方案过多导致了构建大数据架构过程的复杂化。对于许多希望利用Hadoop及其同生技术的用户组织,“这真像是狂野西部时期的泡沫”。Cutting现在是Hadoop供应商Cloudera公司的首席架构师。
不过Cutting认为,大数据系统的益处也正体现于此——这种多样性带来了架构灵活性,支持各种新的分析应用,而且IT成本更低。因此,费一番周折实现集成也是值得的。他认为大多数问题是因为对这些开源软件的开发和部署流程不熟悉引起的。他说:“Hadoop很快就不会令人生畏,人们会习惯使用它的。”
或许是这样吧,不过雅虎公司(据声称是最大的Hadoop用户群)的IT经理们表示,他们并没有完全消除压力。Cutting曾在雅虎总部工作(位于美国加州Sunnyvale),那时候Hadoop在2006年刚启动。雅虎这家web搜索和互联网服务公司是该技术的第一家生产环境用户。目前,该公司(雅虎)的大数据环境有40个集群,混杂了HBase、Spark、Storm实时处理引擎和其它Hadoop相关技术。
Sumeet Singh是雅虎公司负责云计算和大数据平台产品开发的高级总监。他说,总的来说,围绕Hadoop建立的巨大技术生态体系对用户是有利的。Singh表示,Hadoop这个开源框架加速了技术开发的步伐,使IT团队可以集中精力规划和创造对他们公司有用的工具,而不必自己完成所有工作。“我知道有许多开源项目,不过不是每个人都能广泛接触采纳,这其中会有真正明确获益的赢家。”
大数据的世界并不总是阳光明媚的,Singh说:“总会有各种问题随之而来”,他的头脑快要被各种开源框架和大数据框架涉及的数不清的技术撑爆了。