对于Ancestry.com(家谱网)的技术总监Scott Sorensen来说,大数据其实并不陌生。长久以来,Sorensen和他的同事都在使用Apache Hadoop以及其他的开源工具来进行数据处理和分析。然而想要将Hadoop架构与DBA数据处理联系起来,这就极具挑战,其中之一就是团队建设。 据了解,Ancestry.com是一家家谱在线服务网站,它拥有10 PB的家族遗传数据,Sorensen和他的团队需要在海量数据集中进行信息的检索。 Sorensen透露,他们构建了自己的搜索引擎,并对算法以及记录连接软件进行了仔细的调优,该软件可以对网站的结构化数据和非结构化数据进行遍历。Ancestry.com网站包含了大量出生、死亡、人口普查以及其他相关记录,这些记录大多是非结构化数据。 随着用户以及家族数据的不断增长,Ancestry.com希望改善其信息检索的算法。对于Sorensen来说,这是他在公司12年的历史中最具挑战性的任务之一。他的团队认为,通过使用网站访问者导航可以对算法进行优化。 Sorensen表示:“公司招募了一些数据科学家,最初我认为他们可以用Ancestry.com已有的技术配合机器学习等技术来改善算法。但最终他们并没有这样做,而是选择了使用最新的工具。因此我们把Hadoop、MapReduce以及R语言引入了Ancestry.com的工具集。” 不一样的代码 Ancestry.com的团队使用Hadoop架构来对搜索进行优化,同时对客户流失率进行预测建模。在一年半以前,公司开始使用Hadoop以及相关的HBase NoSQL列式数据存储来对AncestryDNA产品进行扩展。该产品使用染色体DNA测试技术来为用户提供更好的服务,甚至能够对远亲进行准确识别,从而让Ancestry.com获得用户的认可。 据Sorensen介绍,这其中涉及到大量的操作。大约有70万个DNA样本要与Ancestry.com数据库汇总已有的相同数量样本进行配对比较。这就是Hadoop以及数据科学家要做的主要工作。Sorensen的团队对学术算法进行了改写,从而可以在Hadoop和HBase上运行并行的任务,这样做可以大大提升海量数据处理的速度。 当科学家遇到软件工程师 让Hadoop架构以及HBase应用到DNA数据匹配上,这不是一个简单的工作,它需要团队的主管人员有灵活的头脑。Sorensen以及其他部门的主管需要创建这样一个环境,能够让科学家与IT技术人员良好协作的环境。 Sorensen认为这个任务是非常艰巨的,因为科学家和软件工程师互相认为可以有能力做对方的工作。数据科学家拥有生物信息学的博士学位,他们认为自己可以写代码。但是他们从来没写过生产环境的代码,这需要是一致、可扩展、可维护的代码。另外一方面,软件工程师认为他们可以去做统计,可以读懂学术论文,而且他们高中时都学过生物。所以他们觉得自己可以掌握基因学的相关知识。 这样的组合就像是博弈。数据科学家的工作可能太过学术,不太易懂;而软件工程师的代码写出来之后也不能充分利用到数据科学家的工作。于是Sorensen决定让双方真正坐下来,面对面地进行沟通。 Sorensen说:“当双方坐下来之后,我们成功的几率就大大增加了。它改善了两组人之间的知识传递。软件工程师能够理解数据科学家的需求,因此能够以他们想要的方式来编写代码,构建系统。” 从OS/2开始的技术人生 Hadoop集群软件、R语言预测分析以及机器学习等技术的引入对Ancestry.com的IT基础架构是一次巨大的飞跃,在此之前他们一直在使用基于规则的系统。Sorensen透露,在职业生涯初期,他是一名IBM的OS/2开发者。这样的变迁他经历了不少,后来他还在WordPerfect、Novell 以及 CoreSoft Technologies等公司担任软件开发经历的职务。 在离开CoreSoft之后,Sorensen来到了Ancestry.com。当时正值2000年技术泡沫破裂的时期,不可否认他急需接触一些新鲜的技术。Sorensen想要在有趣的公司快节奏地工作,解决这样那样的技术挑战。在Ancestry.com公司的十年中,他一路从搜索部门VP做到电子商务的VP,在从研发部门的SVP做到了公司的技术总监。 Sorensen表示,他的职业生涯没有什么特别的主题,而是由一系列有趣的挑战编织而成。在技术领域里,Sorensen认为自己从来没有觉得过无聊,他的兴趣在于发现新的问题,学习新的知识而最终能够解决问题。学无止境,与广大技术人共勉! |