W020170419544018362734

顾荣:谢谢主持人的介绍,我叫顾荣,我是来自南京大学。Alluxio这个项目是有历史的,是12年下祭起源于UC Berkeley AmPLad,坐骑这个项目名字叫Tachyon,16年早期更名为Alluxio,这个名字的解释就是ALL是所有,还有光照的意思,通过这个项目对数据的存储和访问有统一性,而且能够对数据有所提升,这是目标。项目2013年开源,现在最新版本是1.4.0。值得一提的是Alluxio这个数据统计可以看到,它的贡献者、数量其实是整个大数据开源项目增长非常快的,目前我们有来自一百多个组织,我本人也是13年6月份加入,快四年了,也在很多的公司得到了使用,使用规模也非常大,我们南大实验室一直对这个项目贡献了很多源码和相关的其他文档工作。Alluxio这个项目在全球已经被很多知名的IT企业使用,比如百度、去哪儿、巴克莱银行也在用。我们回顾一下为什么需要Alluxio这个项目,意义在哪。很多的人都知道BIG DATA,随着我们很多应用对大数据处理需求越来越多,特点也变得越来越多,所以网上也出现了很多的引擎,比如Spark这样的,我们知道大数据要处理,第一步要解决大数据的存储问题,全下来我们才好进行后续的相关的根据需求进行处理,出现了开源的或者商业的,其实里面云计算贡献了很多的工作,比如SAMZA等等。首先计算层和存储层系统都会带来问题,问题是这样的,整个计算的引擎跟人对接的时候需要写很多东西,我们对接的时候都需要重新组建一次,这个是非常复杂的,而且不利于引用的迁移,Alluxio想做的工作是这个项目介于传统的存储层和计算云之间,我们向下统一的各种各样的存储,往上统一的接口可以由不同的计算引擎,不同的APP进行访问,这样我们就可以将所有的数据访问成一个统一的接口组织起来,这里还有一个特点,为什么刚刚提到云计算,我们充分应用了计算,我们是分布式的,我们可以向上提供访问性的突破。

Alluxio这个项目我们在介绍它后面之前先简单的看一下最近时间关于Alluxio一些报道或者我们一些发展动向,首先我们被收购了,后来我们和收购公司下面做了一些对接,有一些可以作为Alluxio的底层存储系统,华为存储团队也联合发布了一些系统,首先我们跟华为的团队来联合做一些工作。那么这个会议大家也应该听过,北京新加坡都有开,在17年1月3号的发展趋势上第六条下发了存储和计算进行结耦,这是特别重要的发展方向,特别的提到了一个项目,Alluxio在其中起到了非常重要的作用。

那么我们总结一下我们技术的特点,首先第一Alluxio技术特点是将计算和数据共同安置,这里计算和数据共同安置是这个数据放在本地的里面,底层的文件系统可以不和计算一起安置,因为里面已经部署好了,没有办法控制它和计算进行安置,一起安置的好处就是我们可以提供内层的访问速度,而不是靠网络,第二个特点是提供统一的命名空间,从而虚拟化底层不同的存储系统,Alluxio的文件系统空间是一个目录,对你们所有的数据操作就像访问系统一样,比如模拟AB是你不需要管的,举例子,我们可以用Alluxio建一个目录,像A、B子目录,你可以统一的管理,这样我写的应用不管怎么变,也不管底层的文件系统怎么变,这个之间不需要改接口。

第三个是横向扩展的系统架构,Alluxio是一个分布式文件系统,我们可以针对你应用的数据访问量的增长很好的加紧部署,不需要重新做复杂的配置。第四个强调Alluxio对于系统整体提升是一个软件层的解决方案,跟刚刚提过的一样,我不需要对硬件有什么特别的要求或者依赖,我们可以更灵活的去选择自己硬件的配置跟负载情况,也可以很灵活的选择上层的计算软件的一些模型计算方式,根据应用来进行决定。系统优势总结起来有三点,第一个是Unificetion,根据上面的应用可以访问底层各种各样的数据,第二个好处是Performance为,我们可以通过这个把分布式内存用好,应用数据访问的特点提供内存级的访问速度,可以带来多个数量级以上的性能提升,第三是Flexibility,我们结耦以后就可以应用数据开发和底层软件结合,喜欢使用什么就用什么,计算和存储的选择变得独立,可以根据需要而进行。

下面我介绍Alluxio典型的三个应用场景,第一个是计算和存储分离,现在已经是一个方向和思路,我们有底层的云存储和上面的云计算,各个组件,最主要的是可以满足不同的计算和存储硬件的需求,可以灵活的配置,动态的扩展,而且能够独立的部署扩展选择等等,通常这些数据都是放在传统的文件系统中的,可以通过大数据计算框架来进行分析,这个是比较灵活的,但是大的限制是什么?就是计算和存储分离以后,计算需要大数据的时候通常需要引擎访问的,需要通过IO甚至网络访问的,这会带来新的瓶颈,我们看这么一个例子,步入Spark是一个低延迟的很高速度的引擎,但是底层的存储我们在云上,每次你计算的再快,但是每次大数据都很慢,最后会使整个计算过程变慢,有了Alluxio以后会怎么样?底层确实还是很慢,但是Alluxio的部署我刚刚说过,跟计算是在一起的,放了Alluxio以后我们看一下这个图,前面载入的时候比较慢,以后每一次访问的速度都很快,就会加速远程存储的作用,实际的案例是百度的信息,百度的项目分析是每天要查询大量的用户日志,用他们百度的日志获得他们的商业产品,百度的底层有自己的存储系统,在我们这里面他是用了两百个节点的部署,2PB的数据量,很大,这些数据其实并不是在项目经理所在的单位机房里面的,是分散在全国各个机房里面的,每次查的时候就需要跨机房,跨数据中心访问,我们知道计算引擎再快,但是数据传输花的时间已经很长了,通过Alluxio可以在设计本地的机房里进行,就可以用Alluxio做一个热数据的缓存,最终使得他们的存储的时间由原来每次的15分钟缩到30秒之内,所以这个提升还是比较明显的。

我们介绍第二个应用场景,我们在大数据的处理当中,很多工作现在变得流水线化,比如我们拿一些微博或者社交网络的数据,我们通常需要这个数据进行一些清洗和抽取,完了以后还需要对它选择一些简单的查询,查询完以后我们才会对它算法进行新的分析,我们还需要对它进行图分析,看看它的连接关系等等,还需要通过一定的图计算,整个过程我们称为流水线,增长过程其实就是数据不断的从前往后推移的过程,计算引擎现在做得很快,当组成一个流水线以后他们需要不断的交换数据,需要共享一些数据,这个时候性能往往就会被倒卖。比如Spark到Mapreduce到Spark,这样就很麻烦,我们看这个过程底层的数据共享就会延迟整个计算处理流程的时间,我们看一下加了Alluxio以后,我们可以第一次缓存以后放到里面,而且Spark为后面的操作都可以很快的进行,后面每次的操作都通过Alluxio进行,都可以很快的完成共享,你可以放到这里面。实际的案例是巴克莱银行,他们每天也是一样的,有很多的数据分析师需要对他们用户的数据,一些用户的取款存款,相关的交易额数据进行分析,他们分析是用来风控和模型的,对用户进行用户画像,它的数据是很多的,分布的去粘然后再进行处理,但是有一个问题,很多的分析师一起粘这些数据,所以模型的过程很快,因为你都是一些简单的模型,通常几秒钟就可以做完,大部分时间都花在把数据拿到本地来的路上,Alluxio就这些这个问题,你只需要拿一下第一个数据,这是一个文件系统,下面再用的时候就直接到分布组件系统里,而不需要对那么多的数据一条一条的记录,还会发生矛盾争抢,从而使得他们几秒钟就可以算完,所以这个还是非常明显的提升,六个节点。

应用场景三的目标是统一不同存储的数据访问,我们知道现在很多的领域里,由于各个群主的特性,有远程访问的优势,所以它也可以跟好多的系统做整合,一个行业的公司里通常现在会有很多的存储系统在里面,那么这个缺点也是显而易见的,我很难统一的对它进行管理,这个管理包括很多的方面,第一,权限进行统一管理,第二,数据进行API开发,不需要换底层存储系统就需要重新开发一套应用,这个也是带来的问题,总结起来,怎么样能够从不同的文件数据系统里面访问数据,用一套API来做,这是API在里面的作用,我们看Alluxio向上可以提供统一的API访问接口的,往下我们看用StorageB以后是没有问题的,加了A以后并不会到上面去,只需要跟F进行对接,后面的数据都可以通过它来访问,通过S的嫁接有一些应用,并不会进行代码的更改,这个案例是我们去哪儿网做的,需要实时机器学习算法服务他们的线上广告,大家可以看到如果我们不用Alluxio就可以看到数据来回的进行倒腾,来回的复制共享,有了Alluxio,缺点是你的代码工作量变大,背后带来的运行也会变多,有了Alluxio以后我们统一了,代码的工具量很小,而且大家可以看到峰值的时候可以快15到300倍的性能。

我们总结今天讲的内容,第一个是Alluxio这个项目已经被很多领先的企业所使用,刚刚介绍过至少三个,它的核心在于提供内存速度数据访问的、跨计算框架、跨存储系统的统一中间层的存储平台,这个项目也是世界第一个能够同时进行各种工作的项目,我个人认为它可以很好的向现有的大数据生态系统和现有的云计算开放系统做一个整合的一块开源软件,我们开源项目也是非常的快,欢迎大家能够加入到我们的开发利,用户提供一些反馈。谢谢大家,下面我们把时间交给我的同事常城,还是要练一练,让大家看看系统是怎样的。

长城:我简单做一个自我介绍,我叫常城,2015年毕业与清华大学计算机系,后来成立了公司以后就加入了Alluxio公司,我是在大三暑假的时候参加了暑期科研,加入了现在的Alluxio项目,我已经在这个项目做了四年的时间,今天我主要展示两个方面的内容,第一个方面是如何利用Alluxio作为一个统一的命名空间去管理不同的底层文件系统这个Demo我们会用Alluxio管理一下阿里云的OSS,第二点如何利用Alluxio作为一个内存缓存,从而加速Alluxio对远程文件系统的远程访问。首先我们使用一个工具在我的本机启动一台集权,AlluxioMarg(音)是公司开发的为了方便管理集群的Alluxio工具,现在我们就登录到了这个界面,我们为了要创建一个新的集群,我们给集群命名,当然我们可以选择亚马逊的或者谷歌的,下面我们配置一下你的设置,主要是关于一些SSH的设置,在这里我们来配置一下,我们直接使用本地的文件系统,直接使用,此外我们需要Alluxio去访问OSS,所以需要配置一些OSS的选项,我已经预先设置了这些选项,直接复制过来,现在这一步是检测本地漏的设置,已经pass了,下一步就开始从远程拉一个包,并且自动的根据你上面配置,这个会耗费一些时间,右下角可以看到进度,我们进去以后可以看看说明我们集群已经启动,但是文件系统没有任何的文件,我们可以首先跑一个测试,接下来我们展示一下文件系统命令行的基本功能,首先我们可以通过命令行展示一下目前Alluxio里面的数据,这是刚刚所跑生成的数据,我们可以通过命令名把本地的文件放到Alluxio的内存中,我们直接从这里就可以看到文件已经被放进来了,但是这个文件目前还只在Alluxio的内存中,我们通过Alluxio的命令行把这个文件放到一个底层的文件系统中,接下来我希望能把一个远程的OSSbrack放到现有的Alluxio空间里,为了做到这一点首先我在Alluxio里面建立一个目录,目的是把OSS的brack放到这个里面。现在OSSBrack已经被挂在了目录上,我们从这里可以看到这就是OSS的底,我们可以看到OSSbrack所有的文件,这里面有三个文件,第一个是一百K,第二个10兆,第三个1兆,如果我们使用Alluxio秘密行,我们就可以看到最后这三个文件都是在OSSbrack当中的,并没有在本地的Alluxio内存中,而前面的文件是在我们的本地文件系统中,也就是讲了Alluxio同时管理多个底层的文件系统,现在如果我希望在10兆的推特数据搜索一些关键词,比如我搜索一个关键词,首先需要把10兆的数据从OSSbrack拉到本地,需要很长的时间,我们可以验证一下,取决于会场的网络,现在可以看到它总共是花了9秒8,因为现在的数据并没有在Alluxio当中,我们可以看到现在我们可以把这个数据让Alluxio拉到Alluxio的内存中,现在就可以看到这个数据已经是这样了,如果我们重新跑一下上面的搜索命令行,按道理现在是从本地的内存中应该会看得非常多,可以看到它只用的1.1秒,相比于刚刚的9.8秒有九十倍的性能提升,同样你可以搜索其他的关键词,如果你担心上面的结果已经被系统缓存了,如果你搜索一个新的关键词,你可以看到它也是性能会得到很大的提升,我就不跑Spack了,也是一样的,谢谢大家。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排 行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2023-12-18 17:49:00
市场情报 openEuler Summit 2023:汇聚全球创新力量,共建开源新生态
创新项目是openEuler社区发展的推动力,开发者是社区可持续发展的能源。 <详情>
2023-12-11 17:40:19
市场情报 操作系统大会&openEuler Summit 2023即将召开 亮点不容错过
openEuler持续创新聚焦根技术投入,为千行万业构建坚实的软件根基。 <详情>
2023-09-18 16:58:49
新闻动态 2023云天大会|无线电赋能大数据产业高质量发展分论坛:探索无线新动能 助力数字新高地
随着技术的创新与进步,无线电在越来越多的领域得到了广泛深入应用,助力众多产业转型升级 <详情>
2023-08-24 09:38:00
大数据资讯 关注县域数据能力建设,抢占产数业务发展先机
2023年《数字中国建设整体布局规划》正式发布,数据能力已成为我国区域发展的底座和创新引擎。 <详情>
2023-08-11 16:13:15