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

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

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

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

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

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

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

当苏宁易购2013年开始搭建大数据平台时,Hadoop已经成为大数据领域的事实标准,早已在国内外大型互联网公司投产稳定运行多年,相对来说比较成熟,而且确实可以解决苏宁易购海量数据存储和分析需求,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生态的地位依旧稳固。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS2017生成一个简单的DLL文件 和 LIB文件——C语言

下面我们将用两种不同的姿势来用VS2017生成dll文件(动态库文件)和lib文件(静态库文件),这里以C语言为例,用最简单的例子,来让读者了解如何生成dll文件(动态库文件) 生成动…

Hive数据类型及文本文件数据编码

本文参考Apache官网,更多内容请参考:https://cwiki.apache.org/confluence/display/Hive/LanguageManualTypes 1. 数值型 类型支持范围TINYINT1-byte signed integer, from -128 to 127SMALLINT2-byte signed integer, from -32,768 to 32,767INT/INTEGE…

Python绘图Turtle库详解

转载:https://blog.csdn.net/zengxiantao1994/article/details/76588580 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令…

mac使用brew update无反应解决办法

为什么80%的码农都做不了架构师?>>> mac系统中使用brew作为包管理工具,类似centos中的yum,ubuntu中的apt-get,在使用brew update的使用,有时候会长时间无反应,或者中途断开连接,这是…

2018-2019-2 20175223 实验三《敏捷开发与XP实践》实验报告

目录 北京电子科技学院(BESTI)实验报告实验名称:实验三 敏捷开发与XP实践实验内容、步骤与体会:一、实验三 敏捷开发与XP实践-1二、实验三 敏捷开发与XP实践-2三、实验三 敏捷开发与XP实践-3四、实验三 敏捷开发与XP实践-4五、代码…

(八)路径(面包屑导航)分页标签和徽章组件

一&#xff0e;路径组件 路径组件也叫做面包屑导航。 <ol class"breadcrumb"><li><a href"#">首页</a></li><li><a href"#">产品列表</a></li><li><a href"#">大…

python之爬虫(四)之 Requests库的基本使用

什么是Requests Requests是用python语言基于urllib编写的&#xff0c;采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关于urllib库的使用&#xff0c;你会发现&#xff0c;其实urllib还是非常不方便的&#xff0c;而Requests它会比urllib更加方便&#xff0c;可以…

win8下cocos2dx-3.2+VS2012环境配置及项目创建

这是本人CSDN的第一篇博客&#xff0c;因为假期在学校做实训项目接触到了cocos2dx&#xff0c;觉得是一个特别适用强大&#xff0c;有不错的可移植性&#xff08;虽然可移植性不错&#xff0c;但实际上写好的游戏往Android上移植&#xff0c;我的队友废了好大劲。。。&#xff…

Mac系统下Homebrew的安装和使用Homebrew安装python

这里向大家推荐一个东西&#xff0c;Mac下很好用的东西&#xff0c;叫做Homebrew。刚开始接触Mac的时候&#xff0c;我也没听过这个东西&#xff0c;但装了以后真的觉得&#xff0c;TMD太碉堡了。引用一句话&#xff1a;Homebrew is the easiest and most flexible way to inst…

Mac下cocos2dx-3.2+Xcode环境配置和项目创建

这是有关环境配置的第二篇教程&#xff0c;第一篇讲的是win8下的环境配置。这里我们使用C。所有如果你用其他语言如Lua和js进行cocos2d开发&#xff0c;那么可以再找一找其他的配置文档。下面要说Mac os 下 cocos2dx-3.2Xcode的环境配置&#xff0c;这里我使用的是Xcode 5.1.1。…

Mac OS使用技巧之一:查看Finder中的.bash_profile等系统隐藏文件

作为一个程序员&#xff0c;经常要配置变量&#xff0c;可能要更改hosts文件&#xff0c;或者你闲着没事儿寻找homebrew给你安装的东西在什么地方。Mac OS的内核是Unix&#xff0c;Linux/Unix系统出于系统安全和用户安全的考虑&#xff0c;会把一些与系统相关的文件隐藏&#x…

win8下cocos2dx3.2移植android平台及代码打包APK

cocos2dx程序不能只在VS2012下运行&#xff0c;迟早是要搬运到Android和IOS上的。Windows下移植IOS平台先搁下不说比较困难&#xff0c;而且只有越狱的苹果机才可以运行&#xff0c;而且毕竟IOS高端、小众。这里主要讲一下移植Android&#xff0c;windows下cocos2dx打包成APK和…

【转】用Fiddler做抓包分析详解

1.为什么是Fiddler? 抓包工具有很多&#xff0c;小到最常用的web调试工具firebug&#xff0c;达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下&#xff1a; a.Firebug虽然可以抓包&#xff0c;但是对于分析http请求的详细信息&#xff0c;不够强大。模拟http…

Mac下cocos2dx3.2移植android平台详细教程

本文是cocos2dx移植android的第二篇教程&#xff0c;笔者深深感觉&#xff0c;cocos2dx移植android平台是永远的痛啊。。。下面讲一下笔者花费一个周研究的Mac OS下的cocos2dx3.2android配置首先要准备的东西&#xff08;1&#xff09;下载cocos2dx3.2 http://www.cocos2d-x.o…

robotframework(12)修改用户密码(从数据库查询短信验证码)

一、testcase&#xff1a;修改用户密码需要6个参数&#xff08;短信验证码、设置的新密码、用户已登录的userid及用户唯一标识、接口校验码、被修改的手机号&#xff09;&#xff0c;故先准备这些参数 二、用户登录请求&#xff0c;&#xff08;获取userid、用户唯一标识&#…

Mac OS使用技巧之二:修改变量Path解决android: command not found

前一阵子&#xff0c;一直在搞Mac OS和win8下cocos2dx移植android平台的方法。一步步从无到有的慢慢摸索出来。最近发现了一个小问题&#xff0c;有关环境变量配置的写下来分享给大家。就是我们在windows8下查看已有android SDK的版本&#xff0c;需要在CMD里面输入&#xff1a…

Jenkins架构

一. Master 和slave.下图阐述了master-slave交互的架构&#xff1a;在上面这个分布式的构建环境中&#xff0c;Jenkins master主要负责如下&#xff1a;接收构建触发&#xff08;比如&#xff0c;一个提交到GitHub后&#xff09;发送通知&#xff08;比如&#xff0c;在构建失败…

Mac OS使用技巧之三:发射无线网络信号的方法

许多人知道在windows下可以直接借助各种辅助软件来直接发射wifi信号&#xff0c;比如360wifi&#xff0c;猎豹wifi。或者可以直接在命令行里面设置。许多人却不知道Mac系统也有方便快捷发射无线信号的功能。下面讲一下利用Mac OS发射无线网络信号的方法。前提&#xff1a;你的电…

纪实:对CSDN博客系统的一些质疑

我是一个对编程充满热情的在校大学生&#xff0c;本来我是怀着满腔热情来到CSDN写博客&#xff0c;记录和分享自己的学习经历。却被这糟糕的博客系统一次次的泼冷水。写这篇博客确实是因为心中十分不甘和特别生气&#xff0c;所以我决定要把自己的遭遇写出来&#xff0c;我自己…

php框架之laravel

常见问题: 1. 访问网站500错误 这是因为laravel的缓存路径没有找到 laravel缓存文件路径是在 config/cache.php中设置&#xff0c;默认存在storage文件夹中 解决:需要保证storage/framework下面创建 sessions&#xff0c; views, cache 文件夹并确保可写权限 转载于:https://ww…