欢迎进Allbet欧博官网,欧博官网是欧博集团的官方网站。Allbet欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

首页快讯正文

usdt交易所(www.caibao.it):10亿+文件数压测,阿里云JindoFS轻松应对

admin2021-02-0961

USDT第三方支付平台

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

原题目:10亿+文件数压测,阿里云JindoFS轻松应对

简介: Apache Hadoop FileSystem (HDFS) 是被广为使用的大数据存储方案,其焦点元数据服务 NameNode 将所有元数据存放在内存中,因此所能承载的元数据规模受限于内存,单个实例所能支持的文件个数约莫 4亿。JindoFS块模式是阿里云基于 OSS 海量存储自研的一个存储优化系统,提供了高效的数据读写加速能力和元数据优化能力。JindoFS 现实显示若何,我们在 10亿文件数规模下做了压测,验证 JindoFS 在到达这个规模的时刻是否还可以保持稳固的性能。

Apache Hadoop FileSystem (HDFS) 是被广为使用的大数据存储方案,其焦点元数据服务 NameNode 将所有元数据存放在内存中,因此所能承载的元数据规模受限于内存,单个实例所能支持的文件个数约莫 4亿。JindoFS块模式是阿里云基于 OSS 海量存储自研的一个存储优化系统,提供了高效的数据读写加速能力和元数据优化能力。在设计上避免了 NameNode 上的内存限制,与HDFS差其余一点是,JindoFS元数据服务接纳RocksDB作为底层元数据存储,RocksDB可以存储在大容量内陆高速磁盘,解决了内存容量瓶颈问题。借助于内存缓存,将10%~40%的热文件元数据存放于内存缓存,从而保持稳固的优异的读写性能。借助于Raft机制,JindoFS元数据服务可以组成3个主备实例,实现服务高可用。JindoFS 现实显示若何,我们在 10亿文件数规模下做了压测,验证 JindoFS 在到达这个规模的时刻是否还可以保持稳固的性能。同时在一些要害的元数据操作上,我们也跟 HDFS 做了个测试对比。

JindoFS 10亿文件数测试

HDFS NameNode 单个实例所能支持的文件个数约莫 4亿,主要缘故原由是受限于内存巨细。除此之外,由于文件数增添,需要处置的DataNode上报块也增添,造成了性能上的伟大发抖。大量文件信息保存在一个很大的FsImage文件,用于下次启动时加载,而很大的FsImage文件使得 NameNode 启动需要破费10分钟以上的时间。

JindoFS 解决了以上系列问题,它使用 RocksDB 存储元数据,相比于 NameNode 可以存储更大规模的文件数,不受限于内存。另外不需要Worker节点上报块信息,没有性能发抖的问题。JindoFS 元数据服务可以在1s内完成启动,毫秒内完成主备节点切换。以是本次测试,我们划分测试了 JindoFS 从1亿文件数增进到10亿文件数,从而测试其是否可以保持稳固的性能。

数据集(共4组)

为了测试在差其余元数据规模下,JIndoFS元数据服务的性能。我们准备4组数据。划分是:初始状态(0文件数)、1亿文件数、5亿文件数、10亿文件数。我们使用一份真实的经由用户脱敏的HDFS FsImage文件,将其还原到JindoFS元数据服务当中。文件巨细按1:1响应地建立block信息一起存入JindoFS元数据。最终天生的数据集如下。

元数据磁盘空间占用

另外,目录层级主要漫衍在5到7级目录居多。数据集的文件巨细漫衍、目录层级漫衍一定程度上对照靠近生产环境的情形。

NNBench测试

NNBench全称NameNode Benchmark,是HDFS官方自带的用于测试NameNode性能的工具。由于它使用的是尺度的FileSystem接口,因此我们可以使用它来测试JindoFS服务端的性能。NNBench的执行参数如下:

测试写性能

-operation create_write -maps 200 -numberOfFiles 5000 -bytesToWrite 512

测试读性能

-operation open_read -maps 200 -numberOfFiles 5000 -bytesToWrite 512

启动200个Map Task,每个Task写(读)5000个文件,共计100万个文件。(受测试集群规模限制,现实同时执行Map个数为128个)

测试效果

NNBench的效果很好地反馈了随着元数据规模增进,元数据服务的性能转变曲线。通过效果我们可以剖析得出:

  1. 当到达5亿文件数时,读TPS受到略微影响,TPS 下降为原先的94%。而10亿文件数时,读TPS保持稳固,跟5亿文件数时基本持平。

TPC-DS测试

使用的是官方TPC-DS数据集,5TB数据量,使用的是ORC花样,Spark作为执行引擎举行测试。

测试成就如下,时间单元秒:

99个查询总耗时对比:

通过考察发现,去掉误差影响,随着元数据规模从0增添到10亿文件数,TPC-DS成就基本不受影响。

ls -R/count测试

上述NNBench工具主要测试高并发下元数据服务单点写入、单点查询的性能。然而,文件列表导出(ls -R)操作、文件巨细统计(du/count)操作也是用户使用频率较高的操作,这些下令的执行时间,反映了元数据服务遍历操作的执行效率。

我们使用两个样本数据举行测试:

  1. 对一个表(半年数据,154个分区,270万个文件)执行ls -R操作,统计执行时间,使用以下下令

time hadoop fs -ls -R jfs://test/warehouse/xxx.db/tbl_xxx_daily_xxx > /dev/null

,

Usdt第三方支付接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,
  1. 对一个数据库(50万个目录,1800万个文件)执行count操作,统计执行时间,使用以下下令

time hadoop fs -count jfs://test/warehouse/xxx.db

测试效果发现,对于遍历(ls -R/count)相同数目的文件(目录),元数据服务的性能保持稳固,不会随着元数据总量的增进有所转变。

对于10亿级其余文件数,磁盘占用有近100GB,JindoFS元数据服务只会缓存部门热文件元数据,那幺元数据文件的page cache是否会对性能有所影响?我们为此做了测试。

热启动:直接重启元数据服务服务,此时系统存在page cahe。

冷启动:我们使用下令echo 3 > /proc/sys/vm/drop_caches清空缓存,并重启元数据服务。

测试效果如下(使用10亿文件数据集)

通过考察发现,冷启动情形下,这些操作耗时增添了约0.2秒,只受到细微的影响。

与HDFS横向对比测试

通过上面的测试我们得知 JindoFS 在10亿文件数下,依然保持了稳固的性能。另外我们弥补测试了 JindoFS 跟 HDFS 的对比。由于 HDFS 存储10亿规模文件数需要极高规格的机械,因此本轮测试我们主要测试1亿文件数场景,我们通过横向对比list、du、count等常用操作,对比两者的性能差异。

样本说明

抽取 a, b, c, d 共 4 组目录,

目录 a:Hive warehouse目录包罗 31.7万目录,1250万文件;

目录 b:某 database 目录包罗 1万2目录,32万文件;

目录 c:某 table 目录包罗 91个目录,7.7万文件;

目录 d:spark 效果存放目录包罗4.2万目录,7.1万文件;

测试效果(用时更短,性能更好)

单层 list 操作

对单层目录举行睁开并输出,采样方式: time hadoop dfs -ls [DIR] > /dev/null

递归 list 操作

对目录举行逐层睁开并输出,采样方式: time hadoop dfs -ls -R [DIR] > /dev/null

du 操作

对目录占用的存储空间举行盘算,采样方式: time hadoop dfs -du [DIR] > /dev/null

count 操作

对目录的文件(夹)数目、容量举行盘算,采样方式: time hadoop dfs -count [DIR] > /dev/null

效果剖析

通过上述测试效果,可以显著发现 JindoFS 在list、du、count等常用操作上速率显著快于 HDFS。剖析缘故原由,HDFS NameNode 内存中使用了全局的读写锁,以是对于查询操作,尤其是对目录的递归查询操作都需要拿读锁。拿锁之后使用了单线程串行的方式做目录递归操作,速率较慢。拿锁时间长继而又影响了其它rpc请求的执行。JindoFS 从设计上解决了这些问题。它对目录的递归操作使用了多线程并发加速,因此在对目录树的递归操作上速率更快。同时使用了差其余目录树存储结构,配合细粒度锁,从而减少了多个请求之间的影响。

总结

JindoFS 块模式可以轻松地存储10亿+文件数,而且提供高性能的读写请求处置能力。跟 HDFS NameNode 相比占用内存更小、性能更好、运维加倍简朴。我们可以行使 JindoFS 作为存储引擎,将底层数据存放在工具存储(好比OSS)上,而且行使 JindoFS 的内陆缓存加速能力,组成一个云上稳固、可靠、高性能的大数据存储方案,给上层盘算剖析引擎提供壮大有力的支持。

作者:苏昆辉,混名抚月,阿里巴巴盘算平台事业部 EMR 手艺专家, Apache HDFS committer,现在从事开源大数据存储和优化方面的事情。

网友评论

最新评论