现在,在这个世界上,任何一家公司都会张开关闭大数据,甚至十几个调查问卷的人都敢称之为大数据调查分析。他是无知和勇敢的。
但也有很多公司真正拥有大量数据,而且他们真正在制作大数据。这些公司通常很小,但其好处并不一定理想。即使你可以稳定收益,也不应该有很小的成本压力。因为大数据,如果它足够大,是非常昂贵的。
以我公司为例。获取服务器的年度成本已经达到数千万,我将执行8位数。
因此,我们有很强的节省成本的动力。
另一方面,我正在思考如何在没有赚钱的情况下如何在没有做生意的情况下表达我作为公共部门和基础设施部门的价值。最重要的一点是省钱意味着赚钱。它反映在公司的收入和支出上。
如果计算机资源可重用且灵活,则存储空间通常是成本的最重要原因。本文将简要介绍我们近年来在存储空间中所做的一些政府工作,包括几十个PB到100 PB的数据。
1,减少备份副本的数量
每个人都知道HDFS基于3个副本,以确保数据高度可用。但也是这三个副本产生的成本是其三倍。减少成本以减少份数是很自然的。
这种方法看起来很愚蠢,但它解决了这个问题。当然,考虑到牺牲某些高可用性的风险,它实际上并不是一种普遍的方法。
我们在临时文件或在线公司不直接使用的数据中使用此方法。即使它真的丢失了,也不会直接影响业务。它真的没用,如果丢失就丢失它,或者你可以从其他数据中恢复。
因为我们已经做了较严格的Colmena库的权限管理,但给大家留下与网上企业一定的发展空间灵活的调试和实验尚未赶到TMP库。虽然我们已经建立了一个定时消除策略,但是tmp库的存储开销仍然保持在相对较高的水平。
因此,我们编写了一个脚本,该脚本定期移动以将tmp库的文件副本数设置为2.这会将tmp库的存储消耗减少1/3。这可能是数百万人民币。
当然,我还考虑修改Hadoop源代码,我在分配块时自动完成,而不是稍后更改副本数。经过简短的讨论,我觉得一个小脚本可以解决问题,以后不会花费太多。没有必要入侵代码来增加复杂性。
另外值得一提的是,网络和足够的带宽足够大,节点数目,如果存储的压力太大了,其实,可以考虑更多的数据集2的副本。因为即使机器挂起,您也可以通过网络快速重新加载2台其他机器。当然,存在风险。如果运气不好,两个副本所在的机器会同时丢弃,因此数据会丢失。2,压缩
除了删除数据和减少副本之外,另一种简单的思考方式是压缩。
上图列出了Hadoop最常用的压缩格式。当Native确定单个文件的处理性能时,在这个计算密集的生活中,Java仍然比C系列更好。所述splitable确定文件是否可被划分成多个分配器处理,即,如果文件可以并行,这也对性能有很大的影响进行处理。
然后,从定性的角度来看,仅考虑性能,lzo和bzip2似乎是第一选择。
但性能呢?你必须查看真实性能测试的结果,因为时间太长,你无法在那一刻找到数据。在Internet上搜索参考点。不要与绝对数字纠缠在一起,只知道相对差距。
显然,bzip2的压缩和解压缩速度太慢,一个数量级更差,第一个被消除。
剩余的三个,gzip压缩比率是最高的,这是节省更多的空间,但处理速度比较慢,但不作为夸张如bzip2的。无论压缩比或处理速度如何,Lzo和Snappy都很好。考虑到它是出色的,似乎lzo应该是第一选择。
但事实上,lzo具有不容忽视的特征。 Lzo拆分需要支持其他索引文件,并且每个文件必须具有同名的索引文件。此索引文件必须单独生成。这并不意味着索引文件会导致实际文件数翻倍,这将对集群NameNode造成很大的压力。
结合这些情况,真正的生产环境,我们正在使用这种方法:
收集原始记录时使用快速压缩,同时考虑存储空间和处理速度
定期清理已清理的日志文件,并将快速文件转换为gzip以节省空间
对于使用的镶木+ gzip的结构主要表蜂房数据,gzip的节省空间和相对于斯纳皮的性能缺点,是由性能优势拼花偏移。
通过这种方式,您可以在存储空间和性能之间找到一个很好的平衡点。
3,冷热分层
存储领域有一个非常流行的词,称为异构存储。在本地语言中,不同类型的存储被放置在系统中,例如RAM,SSD,DISK等。许多框架(如Spark)都对异构存储提供了广泛的支持。异构存储通常用于解决访问性能问题,这很容易理解,并且不同存储介质的访问速度通常更差。然而,与此同时,空间的大小和成本也是不同的数量级,因此它也可以用来节省成本。
HDFS定义了两个支持异构存储的概念。
第一个概念,即存储类型,用于表示不同类型的存储,包括:
ARCHIVE实际上是一个更大更便宜的硬盘,可以用相同数量的人民币存储更多数据。我们生产128 TB的单一环境。
DISCO,一种普通的普通硬盘,我们生产48 TB的单一空间。
SSD,一种常见的固态单元。
事实上,RAM_DISK是记忆,通常不那么奢侈。
显然,它从上到下越来越快,但它变得越来越贵。
第二个概念,即存储策略,用于指示不同的存储策略,这些策略可以对应于热数据和冷数据的程度,即使用频率。它包括:
热,热数据,经常访问的数据,所有副本都保存在DISK中
冷,冷数据,很少访问的数据,所有副本都保存在ARCHIVE中
温暖和温暖的数据,冷热之间的数据,一个副本保存在DISK中,其他所有数据都保存在文件中
All_SSD,没有冷热对应,所有副本都保存在SSD中
One_SSD,没有冷热对应,一个副本保存在SSD中,其他副本保存在DISK中
前两个概念的不同版本可能具有略微不同的支持。在节省成本方面,SSD自然被移除,而离线大数据处理场景并不真正需要SSD。
通常,根据这个想法,数据是冷和热的,然后设置存储策略可以解决大多数问题。至于如何定义和测量数据的热量,这是另一个可以单独打开的问题。简单地提一下这个想法,你可以根据数据的两个时间维度和访问时间来划分间隔,并计算HDFS审计记录的结果。
除了社区默认支持之外,我们还添加了一层冷冻冷冻以保持数据更冷。
考虑到ARCHIVE已经是最便宜的存储介质,特定冻结的效果无法担心存储类型。我们关注第一部分中提到的备份副本数量。
当然,你不能简单地配置Rings,否则这部分将直接放在第一部分。我们正在使用HDFS删除代码。
从广义上讲,它是HDFS中的RAID。 Facebook和腾讯等公司长期以来一直在生产环境中大规模实践RAID的想法。毕竟,他们绝对是第一家解决存储成本问题的公司。遗憾的是,不再更新或维护以前的版本,或者不会将关闭的代码返回给社区。幸运的是,Hadoop 3.0与此功能正式兼容。当然,也有缺点。首先,代码的稳定性尚未经过测试。毕竟,该行业没有大规模的胎面经验。其次,CDH尚未发布Hadoop 3.0的官方版本,因此实施和维护并不方便和统一。
因此,只有非常旧且长时间不使用的数据才适合在启用删除删除代码的群集3.0中冻结。
根据我们的生产环境,机器的成本约为磁盘机的1/3。分层存储的成本和成本超载如下:
当我看到这种形式时,我相信每个人都有足够的动力来按级别执行存储。
4,大型储物机
然而,近年来,有一种说法已逐渐颠覆了对所有人的传统认知。
据说没有必要直接在大型存储机中划分DISK和ARCHIVE模型。
鉴于与网卡网卡万兆链路的普及和提高交换机的性能,以及E/S的网络不再是瓶颈。
考虑到数据的大小,关系DISK /内存也没啥意思,所以没有必要考虑相对较少的计算资源的问题。此外,存在大量冷数据,并且不必为它们保留计算资源。
这似乎很合理,值得一试。后者不是那么忙,我们将重点关注测试性能。任何有经验的人都可以留言来讨论。
主要内容是这样的,省略了其他分散的政府方法。
随着数据量的增长,元数据也将急剧扩展,很快NameNode将成为集群瓶颈。解决方案是HDFS Federation,我们在生产环境中有很好的实践。但这是另一个复杂的问题。下次我有机会分别打开一篇文章并详细说明。
上海IT外包服务网 链接:http://www.linemore.com