8月22日-8月23日,2019全球闪存峰会(Flash Memory World)在杭州召开。著名存储专家、媒体人西瓜哥在ABC 分论坛发表了《凉凉的Hadoop,火火的后端存储》的主题演讲。以下内容根据速记整理,未经本人审定。
西瓜哥
西瓜哥:谢谢大家,坚持到最后。
今天我主要讲Hadoop的事情,但是我是做存储的,所以主要讲Hadoop后面存储的一些事情,还有我自己的一些观察。
“高端存储知识”,这是我的公众号,因为我是DOIT的常客,峰会也参加很多届了,估计来看我的,听我的人可能大部分还是知道,如果不知道就搜索一下“高端存储知识”加我的公众号就可以。公众号里面有我的个人微信。
今天晚上我们在旁边也包了一个茶馆,如果大家聊不完的话,晚上茶馆见。
这段时间自媒体很多文章说Hadoop不行了,Hadoop凉凉,为什么呢?有可能会看到两个巨大的Hadoop发行厂商合并了,Cloudera和Hortonworks,所有大家觉得是不是Hadoop不行了。
我讲讲我的想法,Hadoop其实就是一个开源项目,它是一个的框架,我们里面很多的部件我们都很熟悉。什么HDFS,现在又出了一个新的子项目叫对象存储的,他们现在也搞对象存储。应该是后来发现对象可能越来越流行,所以它也搞一些对象的东西。
Hadoop相关的项目很多,我们看得什么Hive、Spark其实都在里面,所以Hadoop是一个比较广义的东西,狭义的可能也就是那几个项目。但是广义的话,相关的东西还是很多的。
我们看业界Hadoop的发行版厂商也很多,除了公共云厂商,基本都在里面。阿里,Google、亚马逊都在里面,企业市场这边我们看到有国内的华为,国内的东方金信,星环等等。这一块的市场厂商还是蛮多的,而且我们看到很多发行版厂商其实在云上面也有部署。除了富士通没有在云上部署,只是在企业里面有部署,其它都是云上云下都可以用。
整个市场,我个人观点是,发行版市场现在很动荡,现在公司被收购、合并,但是从数据来看它们一直在增长了,所以它可能是跌落神坛而已。可能是大家捧的太高,跌落神坛,个人觉得这个市场还是增长的。
他们现在确实面临着很大的竞争,为什么?第一个,很多的应用,它们都有自己的发行版,比如说它可以单独发行,它也不依赖Hadoop的发行版,比如我在上面部署Spark,Spark可以独立发行,Hadoop发行版它不是一个必须的东西。
第二,我们看大量的Hadoop都部署到公共云上去了,为什么?因为本来数据就在云上,所以分析也会在云上做。中国这边可能很多企业它数据不敢上公有云,所以它还放在线下。本来数据就是在线上,从互联网收集的,它一般就是云上。云上有一个很大的好处,我不需要升级Hadoop的版本,公有云厂商就帮你搞定了,你用这个服务就可以了,所以现在云端增长比较快。
可以看到在,中国发展也很快,在这个市场也取得很大的进步。可能也有一些问题,原来很多已经部署的Hadoop的厂商,后来发现这个收益不是特别好,可能因为有AI的东西,这个收益就不见的一定能体现……可能跟很多实用性项目比,可能不能得到领导的认可,所以感觉后面没钱投入,多少会有一些问题。
这两个公司的合并,对整个市场格局的改变还是蛮大的。Hadoop从刚开始在雅虎部署到现在13年了,Cloudera应该有10年。这两个公司合并我们看到他们的宣传,他们有2000个客户,而且有很多客户收的超过了100万美元,我觉得这个市场其实并没有萎缩,还是有利的。
从他们的销售数据我也看到,数据库的销售情况,右边是统计,左边是它的格局。这个格局主要是整个数据库的市场。我们可以看到增长最快的还是公有云厂商,Hadoop厂商,包括其它的厂商虽然在增长,但是增长率确实不如公有云。
我们看到整个市场没有下跌,基本上都在增长。Gartner也做了调查,它调查到现在使用Hadoop的用户已经有34%,很多用户已经部署了Hadoop。16年调查的时候好像只有大概16%,这是对2019年做的调查统计,其实是2018年的情况。
未来两年部署Hadoop的厂商有50%多,我觉得大家并没有看衰这个市场,只是几个发行版的厂商受到了影响。因为Hadoop本身的优势,它在数据湖里面还是比较适合的,对一些未知的数据类型,未知的数据分析,Hadoop还是一个比较合适的解决方案。数据湖建不好,这个就变成了数据沼泽,那是另外一回事。从架构来讲,它还是有些优势。
往下看Hadoop后面用的存储,它一般是用什么架构?我们就看一下HDFS,因为Hadoop最开始用的HDFS,现在又开始做对象存储。HDFS跟传统的分布式文件系统不太一样,它是做了很多优化的。它抛弃了很多的POSIX的操作,比如不能更改等等,它更强调一种流式的应用。大家在分析流的情况下,它的效率还是可以的,这是它针对分布式文件系统的优化。
HDFS协议它会支持很多现代的应用,也就是说并不是说新的应用就不用就支持。所以要分析数据的话,还是保证兼容,而且HDFS一直在发展,原来最大问题是EC,现在也支持。EC生产里面很少看到用,因为性能比较差一些。我们看到HDFS也做了分层,做了很多权限和快照,其实功能也一直在发展。但是毕竟不是一个专业存储厂商做的存储产品,可能从企业角度来看更多是开源的组件,还是有一定的差距。
现在很多企业会把数据库建立在对象存储上,用S3A接口去对接。因为Hadoop支持的这个接口。所以支持对象存储,但是有这个通用接口对接有性能的问题,所以说只能满足对性能要求不是特别高的场景,或者说做当Hadoop的分层存储来使用。
因为Hadoop有本地数据优先的特性,用Das的方式,性能一般来说比较好。但是我们看到用Hadoop本身这种方式有些缺点,主要缺点计算和存储不分离,大部分时候Hadoop存储容量增长比计算快,分开部署更灵活一些。
Hadoop本身CE是支持的,但是性能或者是硬盘重构问题,可能没有专业的厂商做得好。有一些问题,所以很多出了厂商除了Hadoop产品,还做分布式文件。这一块很多是可以代替这一层,主要是快更加方便,主要是灵活性的扩展,可能也有一些缺点了,比如也许性能不如Hadoop。
有没有办法能解决这些问题?我们要分离的部署,但如何有比较好的性能呢?可能会有一些方法,今天分析了一些做法,EMC在Hadoop对象存储就是ECS,做了专用的客户端。解决了Hadoop一些问题,所以扩展性非常好。他会在这个生态上做比较好一些,不是用标准S3A来跟对象来对接,但是有ECS目前规格还不支持闪存的加速,所以我觉得本身的性能有一些不太好。在共享存储分析的时候,数据不动进行分析,而且分析出的结果可以直接用。ECS是云存储,也是跨区域的,其原数据是同步的,它可以在不同的数据中心可以分析同一个数据集,这个是它本身的优势。但是卖的最多还是Isilon,因为它是分布式的文件系统,把HDFS协议做到系统里面去,不需要客户端,所以这个卖得更多一些,性能也会更好一些。它的生态做的还可以,跟厂商都有联合的销售合作。而且我看最新的博客,Cloudera合并以后会重新跟他们做认证,现在又推出新的认证协议做一些认证的东西,他们合作的还是可以的。博客里面我看到一些信息我也分析了一下,一共有2000个客户,但是跟他合作的只有100个客户,也就是说只有5%的用户了使用了共享的存储Isilon。
我觉得在Isilon在市场上应该占一半的份额,其他有一半的份额其他共享存储的,这样加起来也只有10%。用户现在布置Hadoop,更多是Hadoop DAS更多一些,如果是用分离的部署方案,用第三方存储可能我认为市场占比不超过10%。这个是我目前的观点,但是未来会做的更好一点。
IBM针对Object Storage开发了一个对象客户端,这个客户端有点像ECS的客户端,主要解决的问题就是解决对象里面不能更名的问题。大家知道Hadoop做完分析以后结果输入到临时目录里面,分析完以后才会输到正式目录里面。他把这个东西拷到正式目录里面有一个更名的过程,或者改一个什么文件目录,这些在对象存储是很难操作的,因为对象没有更改的操作,更名一个文件在对象里面只能把这个对象删掉,操作起来很费劲,所以说IBM的客户端主要是解决这个问题,现在新的S3A版本也会解决这些问题。IBM的测试跟老的S3A比性能还是可以的,他也应该开源了。但是我觉得市场上好像碰到不是很多。
IBM也有分布式的文件系统GPFS,也开发了专用的客户端,主要是对接HDFS。这个分布式的文件协议还是不太一样的,没有专用客户端不能把一些协议卸载过来。当然,IBM在Hadoop生态还是做的比较多的,比如说做了一些复制的工具,性能会好很多,可以做Hadoop数据迁移,如果把Hadoop数据牵过来的话比较方便。
Alluxio这个厂商是做内存加速的,也会出加速的产品,它可以用内存来加速,上面协议可做转换,直接对接Hadoop性能不佳的问题。它测试起来会发现用它的加速层以后性能跟本地的Hadoop性能还好一些,但是成本肯定会上去,因为毕竟是收钱的,而且是要硬件的加速。
华为目前在文件这块原来的9000出了一个客户端支持Hadoop的对接,对象里面还没有看到相应的客户端,可能还是用标准S3A对接,文件还是有客户端对接的。
MapR公司被惠普收购了,但自己做了HDFS的实现,相当做了一个存储层,把HDFS文件系统功能替换掉了,所以发行版是不用的HDFS的,全部自己做了。
Minio这个是开源的对象存储厂商,它没有专用的客户端,但是他做了一些优化,比如说有一个命令行的客户端,比hadoop fs好用。同时,也支持AWS的SQL Select语句,可以放到对象存储上直接上面执行,这个是做的比较好的地方。
8月份它刚刚发布测试数据,用的最新的S3A客户端,支持output commiter,发现性能要比Hadoop的性能要好,但是这个测试有一个小问题,不是对等的,他用了24个节点对应原来的12个节点,也就是原来计算存储是融合的,它又拿存储做了12个节点,相当于资源多用了一倍,这个性能说服力不是特别够。
Pure Storage这个没有客户端、有分布式文件,直接把NFS文件系统挂做本地盘用,这样还是解决不了扩展性的问题,但是可以形成快速的分析。NetApp这块做的比较好,有专门的客户端,而且有开源,上面做了很多的优化,只是针对文件的对接。
下面提几个SDS厂商,比如说XSKY,可以看到他们有一个专用的XSKY HDFS Client,有点对标EMC的ECS的HDFS Clinet。对象存储用标准的S3A客户端来对接Hadoop,路径比较长。
做了客户端以后相当于Hadoop直接可以和后面XSKY对象存储的OSD通讯,路径变短了,性能也提升起来了。我们看来一下他们的测试数据。
这边布了三个独立的data node,那边也用了同样的硬件做了对象存储存储,所以这两个配置硬件都是一样的,上面计算都是五台,测试结果跟很多情况下XSKY HDFS Client性能还是比Remote HDFS略好一些,但有一些场景可能会差一些。总的来说跟本地部署的HDFS性能是基本上是可以PK的,性能上还是可以的。
Redhat也做了测试,测试Ceph和Hadoop HDFS的性能比较,副本我们看到比HDFS低一些,但是Ceph EC性能是虽然只有一半,但是成本上优势比较明显。今天闪存峰会还要和闪存挂一点边,我们看英特尔和他们做了全闪存的测试,他们也测试了对接Hadoop的性能,他们发现用全闪存的方式还是有一定优势的,比如说同样十个节点的全闪配置,相当于60个节点的硬盘配置。也就是说,从TCO的角度考虑,用全闪Hadoop的场景,整个成本的节省还是比较可观的,节点数服务器就买少了很多。当然,这个东西也要根据自己的负载去做一些测试才能有一些比较,这个是英特尔的比较。
新的内存计算的应用,对对象存储这块很友善了,之前的方式做数据的分析总是输到临时目录里面去,要更名,最后输出结果更名的操作,你会发现对对象很不友好。我发现很多新的应用已经没有这些操作了,所以说对接对象性能也还可以,因为比较符合对象的操作思路。
现在业界看到Hadoop也出了很多的迁移的工具,原先有原生的迁移工具,还有一些第三方的迁移工具可做数据的在线迁移,用户部署Hadoop,肯定也需要做一个迁移的东西,所以说迁移这块比较成熟的。
最后给几个我自己的小结。
现在比较热的东西确实不是Hadoop了,比较热的东西是AI这些东西,所以说未来很长一段时间内Hadoop不会是一个热点,但是底层基础还在,比如说这些软件和Hadoop HDFS还是兼容的。
我们认为Hadoop本身作为一个很有效的软件堆栈,这个生态还是可以的,大量的数据存在HDFS上面,Hadoop还在发展,现在很多用户部署了Hadoop,数据已经存在上面了,如果有一些支持HDFS的共享存储的解决方案,你就可能比较方便帮助用户激活现在的数据,用现有的数据发挥更大的价值。
虽然现在有很多的标准的方法可以对接Hadoop HDFS,但是从我感觉来看标准的东西对接一般来说性能稍弱一些,如果是要性能的话要做一些专用的接口,充分发挥你这些存储的特点,甚至把这些分析卸载存储里面来。
我们认为未来很多用户会对对象存储感兴趣。
前面讲了对象存储本身就没有文件臃肿层次的关系,他的扩展性非常好,而且受互联网影响,大家很清楚对象存储肯定是未来的方向,只是有些用户应用没有改造完,所以还需要有文件接口帮用户先把老应用对接起来,在慢慢进行S3改造。对象存储最好有一些专用HDFS客户端,把这些新的分析应用也能接进来。
如果现有用户考虑共享对象存储,前面有很多迁移的工具,可以帮助用户把这个工具迁移到对象里面来。
现在看到了S3A也会成熟,用户选择可以很多,你可以用标准S3A对接Hadoop,性能做一些妥协,可以作为分层存储使用。
总结一下,数据湖是未来方向。最好的办法是建一个数据湖的底座,通过对象存储把数据先保存起来,以后有机会再分析。这种分析的对接,现在方案也是很多,生态也会越来越完善。今天的分享就到这里,谢谢大家。
主持人:谢谢西瓜哥,我们今天的会议就到此结束了。