阿里搜索离线技术团队负责人谈 Hadoop:阿里离线平台、YARN 和 iStream

  • 张天雷

2014 年 9 月 18 日

话题:QCon阿里巴巴语言 & 开发Hadoop

Hadoop 从互联网诞生,但近些年在整个大数据领域呈现爆发式发展和进化,尤其是在 2013 年 Hadoop 2.0 正式 Release 后,Hadoop 有了正式的 Operation System—YARN,从此 Hadoop 不再只是 MapReduce 的代名词,Storm、Spark、Graph,MPI 等越来越多的计算模型可以运行在 YARN 上,批处理计算、实时流式计算、迭代交互计算等都可以同时运行在 Hadoop 集群上,Hadoop 已经成为大数据计算的全能平台。HBase 随着近几年的高速发展和应用,已经成为大数据技术领域最主流的 NoSQL 数据库;Tez 和 Spark 的出现让 Hive 拥有了更高效的计算引擎可以选择;Impala 和 Stringer 更是将大数据 SQL 带入到了 Realtime 时代;Ambari 的诞生和快速发展也大幅降低了 Hadoop 集群的运维门槛。随着 Hadoop 开源社区不断涌现出各种令人兴奋的新技术,逐步完善的 Hadoop 生态系统已经成为大数据行业发展的核心动力。

本次QCon 上海的 Hadoop 专题出品人王峰(莫问)接受了 InfoQ 邮件采访,谈到自己在阿里的工作,YARN 的优势以及 Stream 和 Spark 等平台的比较。

InfoQ:为什么会做这次 QCon 上海“Hadoop,超越 MapReduce”的出品人?

王峰:我在阿里的 8 年中一直从事搜索和分布式技术研发,自 2010 年开始基于 Hadoop 生态技术构建阿里的搜索离线技术平台,统一支持淘宝、天猫、1688、一淘和云搜索等多条搜索业务线的后台数据处理,亲自带领团队经历了 Hadoop 从 1.0 到 2.0 的平台演化之路,本次受我们阿里的朱鸿老师邀请,有幸成为“Hadoop,超越 MapReduce”的出品人。

InfoQ:您一直负责为阿里集团服务业务提供平台数据支持,请给大家简要介绍一下整体情况?

王峰:我负责的阿里搜索离线技术团队,为阿里集团的搜索业务提供统一的离线基础数据平台支持,目前我们基于 YARN 构建了统一的计算平台,支持批处理、实时流式等多种计算模型支持;基于 HBase 构建了统一存储平台,支持 KV,SQL,Queue 等多种存储模型,计算 + 存储共享集群资源,同一套基础架构同时支持淘宝、天猫、1688、一淘和云搜索等多条搜索业务线,为阿里的搜索引擎提供实时、增量、全量的全数据支持。

InfoQ:2013 年阿里搜索全面升级 YARN,比起之前来讲有什么优势呢?

王峰:第一次接触 YARN 是在 2011 年低在美国参加 Hadoop World,随即造访了 Hortonworks,更加详细深入的理解了 YARN 的设计思路,感觉这个东西如果成熟了,就是 Hadoop OS,Hadoop 的计算能力将产生飞越。但如果只在 YARN 上单纯运行 MapReduce,其价值将不会有质的变化,最大的好处也就是把集群规模可以做的更大了,这个意义就大打折扣了。升级到 YARN 的最终目标应该是让计算模型更加丰富,并产出统一的计算平台,降低维护成本,更大程度的扩大集群资源利用率,发挥云计算的效果。我们阿里搜索的 Hadoop 升级到 YARN 以后,不仅运行了传统的 MapReduce、Hive,还自主研发了 iStream(流式计算引擎)、iCall(基于 Thrift 的分布式 RPC 服务),后续还计划尝试 Tez,Spark 等新式计算模型,统一的计算平台相比之前的 MapReduce Job,无论是效率,成本还是对业务支持的灵活性都实现了质的飞跃。

InfoQ:我们还看到淘宝自主研发了 iStream 流式计算引擎,这方面的工作也想请您简要介绍一下。

王峰:其实我们当初最早是尝试 storm,但 storm 最大的问题是无法和 hadoop 集群复用,单独存在的 storm 集群让我们运维成本增加,同时资源利用率也上不去,出现各种问题也无法根本解决,YARN 的出现让我们有了新的思路。iStream 天然是基于 YARN 来设计的,因此其在设计理念上最大的亮点就是考虑了如何和其他计算模型共存,达到实时计算效果的同时,还可以实现计算平台的全局最优化,例如:iStream 可以自动感知流处理的进度快慢,智能调整计算节点的数量,即高峰期可以自动扩容节点保证处理速度,低峰期也可以在保证进度的条件下合理释放节点,让资源在多计算模型场景下真正按需分配。现在阿里搜索的 hadoop 集群上,iStream 承担了流式数据处理的角色,为搜索引擎提供实时增量数据,MapReduce 承担了全量或者批量数据处理的角色,为搜索引擎提供全量数据,两种计算模型可以自动合理的配合,无需人工运维干预。

InfoQ:Spark 平台目前挺火的,您在这方面是否有所涉及?

王峰:Spark 目前可以算是最火的计算模型,不过我们还没有将 Spark 投入生产,原因不是我们不认可 Spark,而是 Spark 强在迭代计算和实时 SQL,这块在搜索主流程中的场景不是特别明显。简单来说,Spark Streaming 在我们这里有了 iStream,实时性和资源管理更加专业;Spark SQL 在我们这里有了 Phoenix(SQL On HBase),因为我们的数据基本都在 HBase,基础的 SQL 场景,我们用 Phoenix 可以轻量级的解决了;迭代运算都是算法训练的纯离线过程,都在阿里的云梯和 ODPS 上运行了。

InfoQ:作为行业翘楚,您对 Hadoop 的认识非常深刻,不知您有没有比较好的图书、社区推荐给广大读者?

王峰:其实我个人阅读的 Hadoop 相关的图书并不多,除了几本英文经典之外,大部分信息都是通过社区文档、hortonworks/cloudera 的 blog、slideshare 上的各种会议 slides 以及微博 /twitter 获取的,当然经常去 hadoop 社区的 jira 上看看 issue,阅读一些源码也是必不可少的。

InfoQ:最后一个比较八卦的小问题,请您谈谈花名“莫问”的由来?

王峰:虽然我在阿里已经超过 8 年了,但我前几年在雅虎中国和阿里云,2010 年转到淘宝的时候,好的花名已经都没有了,“莫问”这个名字是“七剑”中傅青主拿的那把剑的名字,是“七剑”智慧的象征,同时也挺喜欢七剑中“莫问前程有愧,但求今生无悔“这句话,所以就起名“莫问”了。

采访者简介:张天雷(@小猴机器人),清华大学计算机系博士,熟悉知识挖掘,机器学习, 社交网络舆情监控,时间序列预测等应用。目前主要从事国产无人车相关的研发工作。

QCon阿里巴巴语言 & 开发Hadoop