在笔者持续调研国内Hadoop生态系统生存现状的同时,KDnuggets发布的2018年数据科学和机器学习工具调查报告再次将“Hadoop失宠”言论复活。报告一出,“Hadoop被抛弃”几个字瞬时成为各大标题党的最爱,充斥在不同的新闻平台。这些报告和数据是否足以动摇Hadoop在国内大数据领域的事实标准地位?本身并不擅长处理OLAP计算和ms级延迟要求的流计算,这是否会成为企业弃用Hadoop的重要原因?对于繁多的组件和搭配,企业倾向于哪种组合方式呢?

▲2018年数据科学和机器学习工具调查报告,Hadoop使用率下降35%

本期走访对象:苏宁易购。作为新一代B2C网上购物平台,经过了多年大小促的流量高峰考验,苏宁易购的大数据平台是如何搭建的?对于Hadoop生态的各类组件,苏宁易购如何取舍呢?

苏宁易购决定选用Hadoop:成熟、稳定、成本可接受!

大部分企业在进行技术选型时都会考虑成本与需求,迫切地希望知道同类型企业的选型方案,最终对可能的几大方案进行全方位调查,得出最符合企业自身业务发展诉求的方案。苏宁易购首先考察了Hadoop生态与自身业务需求的契合度,Hadoop可靠、易扩展,集海量数据存储和计算于一体(正如Apache Hadoop项目官网所描述的)。从成本方面来看,Hadoop开源免费,不需要支付昂贵的商业软件成本,虽然需要额外的人力成本来维护和优化,但相对来说比较少,拥有强大的开源社区支持,目前github上已有7.3K的star。

当苏宁易购2013年开始搭建大数据平台时,Hadoop已经成为大数据领域的事实标准,早已在国内外大型互联网公司投产稳定运行多年,相对来说比较成熟,而且确实可以解决苏宁易购海量数据存储和分析需求,Hadoop便顺理成章成为苏宁易购大数据体系的基石。

在具体搭建过程中,苏宁易购使用HDFS作为海量数据存储系统;HBase作为表格存储系统,提供在线实时读写;YARN作为统一资源管理系统,为离线和流式计算提供资源调度服务;Hive/SparkSQL作为离线SQL分析主力,小部分无法用SQL描述的需求用MR/Spark补充;SparkStreaming作为准实时计算引擎提供服务;以Spark MLLib为基础扩展算法包,支撑整个机器学习平台。

Hadoop生态虽然足以应对海量数据存储和离线分析场景,但对于秒级延迟要求的OLAP计算和ms级延迟要求的流计算场景却无能为力,这也成为很多人看衰Hadoop生态的原因之一,当然目前也没有任何一个平台能完美应对以上所有场景。

组件级竞争激烈,Spark优势明显,容器兴起再掀风波!

所谓无风不起浪,Hadoop生态看似稳固,但其组件级别的竞争相当激烈,Spark和Flink成为强劲对手。苏宁易购认为,HDFS作为海量数据的存储系统,具有非常高的可靠性和易扩展性,一直以来表现稳定,在大文件存储和分析领域,市场上还没有能够替代的产品;HBase在KV存储领域占有绝对优势,特别是大规模数据集场景几乎是必选方案,在GB-TB的数据规模下,Redis和其他内存数据库被普遍使用;ZooKeeper作为分布式协调系统,被大规模广泛使用,依然拥有很强的生命力;YARN与Mesos在分布式资源调度领域竞争由来已久,在不同领域各有建树,YARN毕竟根源于Hadoop,已是Hadoop生态标配,随着容器的兴起和广泛使用,Swarm和Kubernetes也加入资源管理领域的竞争,使这个领域的竞争更加激烈。

Spark作为内存型计算框架,其先进的理念、优秀的性能表现对MapReduce冲击很大,MapReduce两阶段的计算特性虽然简化了程序开发的难度,但引入了过多磁盘、网络IO和任务启停开销,成为过去已是必然,特别是SparkSQL,基本让Hive的底层计算引擎MR无立足之地,苏宁易购也一直在推进SparkSQL替换HQL的工作,但Hive作为数据仓库的功能基本不会被替换。

Spark作为Hadoop生态系统中的重要组件,在大数据计算领域依然不可或缺,Spark SQL, Spark MLLib已被广泛应用。但是,苏宁易购认为,Spark目前只是作为计算引擎存在,数据存储还需要依靠HDFS,S3,Ceph等系统。未来的资源肯定要统一管理,只有资源集中管理、统一调配才能充分被利用,即使不On YARN模式运行,也会on Mesos或者on Kubernetes之类的系统去运行。至于资源统一管理带来的隔离性要求,这是YARN、Mesos们要考虑的问题。苏宁易购计划在下半年启动统一资源管理项目,将流计算、离线计算资源统一管理调度,预计能节省30%左右的机器成本。

此外,Flink作为近几年出现的计算框架,与Spark比较相似,都期望提供流处理、批处理统一API编程模式,但两者看问题的角度完全不同。Spark最先发力批处理,后做成微批处理实现流计算,而Flink从一开始就面向流计算,将数据看成Unbounded,将批处理当做流的一种特殊情况。基于此,目前Flink更多的被用在流计算领域,比如阿里深度定制的Blink已成为其内部主流的流处理框架。从设计角度来说,Flink也有很多亮点,比如支持Event-Time,支持Exactly-Once的处理语义,支持分布式异步checkpoint等。苏宁易购目前内部主推Flink,期望能替代有点老迈的Storm。

目前Flink刚刚发布1.5版本,修复了很多Bug,新增了很多特性,比如对SQL和Table的增强,优化了网络栈;社区也比较活跃,共有3700多个star,保持5个月左右一次大版本发布的频率。在流计算领域,Flink绝对是强有力的竞争者。

Gartner看衰言论解读:看事情的角度不同可能造成结果差异!

经过十多年的发展,Hadoop已经比较成熟且运行稳定,生态也相对完善,在海量数据存储和分析领域已经成为事实标准。至于Gartner的唱衰论调,苏宁易购认为,Hadoop就好比日常生活中的水电煤,因为太普遍反而引不起特别关注,或者,Gartner报告中所说的Hadoop是指狭义上的Hadoop,也就是原始的HDFS和MapReduce组合。如果单看这两大组件的发展,MapReduce确实在逐渐退出舞台,被Spark/Flink所取代。

苏宁易购认为,Hadoop失宠前提一定是出现更强大的可替代大数据解决方案,现在来看,并没有这样的方案出现。存储和计算领域确实持续出现了一些受追捧的新组件,比如OLAP领域的Druid和Clickhouse,就是用来弥补Hadoop在海量数据多维实时分析场景下的不足。比如Flink,采用流处理、批处理统一API编程模式解决两种模式、两种API带来的不统一、编程门槛高等问题。

短期内,苏宁易购没有颠覆性调整大数据底层平台架构的计划,仍然以Hadoop生态系统为核心,并对Hadoop的未来充满信心,但会在一些Hadoop覆盖不到的场景中引入其他组件并持续投入,比如Druid\Elasticsearch。

笔者点评:

在前期的多份采访中,笔者曾一再表明,Hadoop的关注度确实在下降,而关注度确实是Gartner报告的一个重要考察因素。但是,KDnuggets报告明确表明Hadoop的使用率也在下降。当然,这两大报告的受访主体以美洲和欧洲用户为主,亚洲用户参与率较低,这也是前期不少用户在评论区留言表明国内外数据量的规模差异是造成该结论并不适用国内的重要原因。到底多大的数据量可以被称为大数据,这个标准在国内外确实是有差异的。如果数据量不大,确实可能对Hadoop没有需求,但国内的数据量显然大于国外,这可能是国内对Hadoop需求较大的重要原因。

其次,Hadoop生态内组件级别的替换淘汰是很正常的,但这暂时还不会上升到生态层面。正如苏宁易购所言,在没有更加强大的替代品出现之前,Hadoop生态的地位依旧稳固。

苏宁易购:Hadoop失宠前提是出现更强替代品相关推荐

  1. 合纵连横、多线发力,苏宁易购稳步向好

    仅一个月时间内就敲定了与30家大企业近300亿元的战略合作.而且还携手美团开始在即时零售业务板块发力--曾经陷入困境的苏宁易购,近期却以稳定增长的核心业务.以及效率极高的升级转型,成为人们关注的企业. ...

  2. 苏宁易购Android架构演进史

    http://www.infoq.com/cn/articles/suning-android-architecture 摘要 一个电商类APP,对用户而言,是琳琅满目的商品,是层出不穷的优惠,既是社 ...

  3. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储...

    http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...

  4. 看苏宁易购的运营保障体系如何hold住818大促

    运营质量的好坏关系着用户的体验.在日常的业务运营过程中,商品无货.页面或券过期.商铺下架.视频无法播放等问题都严重影响用户体验.如果仅凭运营的人工监控和维护来保证服务质量,不仅效率低,而且效果也不佳. ...

  5. 苏宁易购开放平台_发力内循环,苏宁易购开放平台商品交易规模大增56.83%

    刚结束的双十一"团战",苏宁易购上交了漂亮的"成绩单",线上线下销售数据均十分亮眼. 官方披露,苏宁易购双十一线上订单量增长75%:即时业务方面,苏宁家乐福订单 ...

  6. 苏宁易购 App 客户端架构演进

    点击上方"开发者技术前线",选择"星标" 13:21 在看 真爱 作者:李呈武 | 来源:前端之巅 摘要 一个电商类 APP,对用户而言,是琳琅满目的商品,是层 ...

  7. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储

    1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HBase等. 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有 ...

  8. 从两则新闻看苏宁易购的架构设计

    苏宁易购与网宿科技达成合作,技术优势或成电子商务竞争关键 日前,苏宁电器正式对外发布2011年3季度季报,其旗下的电子商务平台苏宁易购业绩斐然,仅2011年前三季度就实现营业额近41亿元,紧随淘宝商城 ...

  9. 苏宁11.11:苏宁易购订单搜索系统架构及实现

    背景 随着苏宁易购平台规模的飞速发展,平台的订单量呈现指数级的增长,存储容量已达TB级,订单量更是到了万亿级别,尤其在双11大促流量洪峰的场景下,面临两个挑战: 1.如何存储如此巨大的数据量 2.如何 ...

最新文章

  1. 一文读懂jar包的小秘密
  2. speedtorch 加速神经网络
  3. Fennec Alpha 1 for Windows Mobile available
  4. Hadoop 集群启动与停止
  5. 从知乎了解到,为什么Mysql禁用存储过程、外键和级联?
  6. 最大堆的Java实现
  7. 函数调用过程(栈桢)
  8. 使用tSQLt创建SQL单元测试实用程序过程
  9. block的理解 ios_iOS面试--字节跳动最新iOS开发面试题
  10. Mybatis Sql 大于号小于号不兼容
  11. Java 中国大陆身份证处理
  12. 关于反病毒技术的想法
  13. Jmeter的元件使用介绍:前置处理器详解
  14. 学术-物理-维空间:二维空间
  15. 参数化建模类毕业论文文献有哪些?
  16. C语言 编写函数求n个整数的和
  17. 互联网日报 | QQ正式上线QID功能;高通骁龙888处理器正式发布;嫦娥五号成功落月...
  18. 亲爱的老狼-定位position的应用
  19. 固高控制卡Home回零的使用
  20. 聚集索引和非聚集索引的区别?

热门文章

  1. C++函数中返回引用和返回值的区别
  2. this 和super关键字
  3. Google File System设计方面的问题汇总
  4. Codeforces Round #149 (Div. 2)【AK】
  5. 人事薪资管理系统V1.00功能简介(适用于工厂)c#.net+SQL Server2000
  6. linux查看fcsan设备,fc-san存储
  7. java反射 获取方法_java反射之获取类的信息方法(推荐)
  8. linux分文件编程、静态库与动态库
  9. 计算机结构原理初步教案板书设计,(计算机工作原理)教学设计(教案)
  10. python 三引号_Python 基础(一):入门必备知识