前言


前段时间无意间看了一则Apache Big Data Europe 2016的回顾,感觉挺有意思的。因为本人一直focus在HDFS这个模块上,所以我特意关注了在此次大会中提到的一个issue:HDFS-7343(HDFS smart storage management)。后来本人花了一定的时间对此issue进行了学习,总结下来一句话:这个issue可以说是一个非常大胆而又具有新意的想法。它的目标是解决困扰HDFS使用者已久的一个问题:数据如何存储管理。而在HDFS-7343中,引入了一种“智能化存储”的概念,帮助用户来管理它所拥有的数据。

HDFS目前的数据管理模式


在介绍HDFS-7343中提出的“智能化存储”概念之前,需要了解现有的一个大背景:HDFS现有的数据管理模式。和最早时间段之前相比,现在的HDFS应该来说还是发展地很快的,比如说在最近几年,HDFS能够支持缓存存储(HDFS Cache),异构存储(HSM),还有EC。这些多元的存储方式能够让用户进行更加灵活的选择,当用户面对不同的应用场景时。

对于用户而言,这些数据存储方式的确是有用的,但是它们有一个共同的问题:需要外界主动触发。换句话说,当用户A发现B文件被频繁的访问,于是它需要主动将B文件进行cache,或是将它设置成Hot的存储策略。在这里HDFS是否能做到更加智能化一些,不需要用户的介入呢?因为有些不了解HDFS的用户可能根本不知道有这些特性。如果HDFS能真正做到对此的智能化管理,那无疑这将会是一个新的创举。

HDFS智能化存储管理概述


HDFS智能化存储管理全称叫做Smart Storage Management,简称SSM。凡是要做到智能化、自动化的事情,往往不会特别容易,更可况是在异常复杂的HDFS之内。要想做到智能化的存储管理,首先它的核心原理应该如下:

根据文件历史访问情况数据,例如最近一次访问时间等,作为数据存储的一个评判标准。

上面提到的一点只是我们大家会直接联想到的,如果说要真正做文件存储方式的预测分析,可能还需要结合文件的大小、属性信息等更多因素的信息,然后做一个综合所有因素的一个预测

SSM是一个智能化管理的机制,但是它是需要一个”智能引擎”,而这个引擎的规则制订者则是来自外界的用户。什么意思呢?因为我们都知道机器是死的,人是活的,之所以它具有智能特性,是需要人们给它设定很多规则,然后它根据这些规则做智能处理的,这就好比一个机器人,你需要给它输入很多命令,它才会执行每一步操作

HDFS 智能化存储管理方案的设计


在HDFS-7343中,对此方案进行了详细讲述,同时有完整的设计文档。在此,本人进行一个简单的阐述。

SSM服务


考虑到SSM本身将会是一个比较“重”的服务,设计者对其进行了拆分的设计,也就是他不打算把这块内容放在NameNode上来做,而是启单独的服务,在此我们姑且叫做SSM服务。一句话来概括SSM服务的作用:

SSM只对外提供执行操作事件,不做真正的数据管理的动作,这些动作依然由NameNode来完成。

也就是说,SSM只做分析和给出分析结果两件事。一个简单的处理流程如图1-1所示。


图 1-1 SSM服务简单执行过程

SSM整体架构


了解了SSM单独服务作用之后,我们来看看HDFS SSM的整体结构设计,设计者到底打算如何将此服务应用到HDFS上去呢?总的架构设计如图1-2所示。


图 1-2 HDFS SSM架构设计

上图的架构设计精准地展示了目前HDFS SSM的一个设计思想。对照图1-2,以下是对HDFS SSM架构设计的两个要点描述:

  • 这里引入了Kafaka服务kafkaService来做信息的收集,这类信息就是前面提到的一些文件历史访问等这类的信息。我们可以看到,图中显示的信息收集模式是一种push的模式。由于DataNode,NameNode主动推向Kafka的服务。可能有人会提出质疑,这不是会加重DataNode,NameNode的压力吗,这点的确是一个弊端。但是换个角度思考,如果让采用pull的方式,在集群规模很大的情况下,要逐个遍历节点去获取信息,恐怕也不是一个很高效的方式吧。所以在这里,会有一个权衡。Kafaka收集的信息是要给SSM服务提供数据进行分析的,所以这里会有从KafkaService到SSM的箭头。
  • 对于SSM的运行,首先是需要集群管理员输入一些规则,然后SMM经过分析最后把要执行的action动作发给NameNode来执行。下面我们继续进入SSM到NameNode的处理过程,在这个过程中,其实也需要做很多事情。

SSM内部运行过程


从上面的讲述中,我们可以看到SSM服务对于输入“规则”的依赖性,就像一个人工智能背后离不开一个优秀的算法。所以我们可以预见到在SSM内部,会定义一种的新的“规则语言”以及相应的“规则解析器”。外界服务向SSM进行服务查询的时候,会进行规则的判断执行,而这些规则判断执行的时候需要依赖Kafka服务中收集的历史数据,然后给出反馈命令。综上逻辑,SSM内部的执行过程如图1-3所示。


图 1-3 SSM内部结构

图1-3的右侧保存数据的操作指的是保存像“规则”之类的数据,等下次重启集群时还能进行恢复。

SSM的实现难点


这套智能化的存储管理方案看下来的确是一个非常高大上的功能,但是同样本人认为其中将会遇到的困难点也应该不少。比如说下面这个争议点(部分观点来自社区的讨论):

如果仅仅凭借文件的历史访问数据情况或者说仅仅从HDFS层面,就来决定文件的存储类型,是否太过片面?是否能结合YARN层面的应用信息来做决定,是否会是一个更优的选择?因为用户提交执行的应用,往往会带有类似的执行特征。一旦存储策略分析的不准确,到时可能会频繁造成大量数据不必要的迁移,反而起到负面作用。

最后总的来说,个人还是很期待HDFS SSM,这是一个很有想法的feature,对于初学HDFS的用户而言将会是一个很大的帮助。

参考资料


[1].HDFS smart storage management
[2].HDFS-Smart-Storage-Management.pdf

HDFS智能化存储管理:Smart Storage Management相关推荐

  1. 非结构化文件转移服务器,非结构化数据存储管理方法,服务器和系统 Unstructured data storage management method, and a system server...

    摘要: 本文提供一种非结构化数据存储管理方法,服务器和系统,解决现有技术中非结构化存储管理系统无法支撑大量的小文件及其元数据的存储和快速访问的问题. This article provides a m ...

  2. Security Storage Management using Tivoli – Wrap –up! Part 1 2

    Security & Storage Management using Tivoli – Wrap –up! Part 1 & 2.zip 来自 " ITPUB博客 &quo ...

  3. HP服务器Smart Storage Administrator 配置阵列

    磁盘阵列是指将多个类型.容量.接口,甚至品牌一致的专用硬盘或普通硬盘连成一个阵列,实现以某种快速.准确和安全的方式来读写磁盘数据,从而达到提高数据读写速度和安全性的一种手段. F10,然后选择HP S ...

  4. HPE: smart storage: hpssacli:

    文章目录 参考 命令实例 问题 参考 https://cmdref.net/hardware/proliant/hpssacli.html https://support.hpe.com/connec ...

  5. HDFS精华文章汇总

    前言 自2015年下半年起,笔者开始写关于Hadoop的文章(主要集中在HDFS),包括源码分析类的,问题分析解决又或者是内部机制剖析.这些文章目前汇总数量已经达到70+篇.这些文章对于笔者来说是一个 ...

  6. 英特尔架构助力大数据 • 智算一体机方案释放“数智”潜能

    在数据爆发式增长的今天,越来越多的组织开始构建大数据与人工智能 (AI) 平台,以期在强化海量数据处理能力的同时,赋能创新技术应用,推动数字化转型战略实施. 然而在构建大数据与 AI 平台的同时,复杂 ...

  7. 计算机与软件工程-研究生复试-专业面试题型举例

    本人笔记本里这是十五个独立的文章,汇聚在一起,可能模块不是很清楚,这里可以自行对应一下 开放思维题 Java原理 操作系统 个人经历 行业前沿 基本问题 计算机网络 计算机组成原理 软件工程 数据结构 ...

  8. jca oracle官方文档,Oracle 官方文档说明

    Oracle 官方文档说明 相关的部分并没有全部罗列,只列举了常用的文档. 没有罗列开发相关的部分(SQL / PL/SQL例外). 部分内容是在OCP课程之外的. oracle 错误号参考 Erro ...

  9. SQL比oracle卡,对比Oracle与SQL Server

    尽管Oracle和SQL Server的定位都是企业级的数据库产品,但是用过它们的DBA应该都知道,Oracle相比于微软数据库平台,在高级特性方面的优势还是挺明显的.特别是数据库高可用性以及安全性上 ...

最新文章

  1. vue 数据绑定实现的核心 Object.defineProperty()
  2. 中介分析 相对直接效应 相对简介效应_中介效应分析方法和流程
  3. 【牛客 - 330C】Applese 走迷宫(bfs)
  4. 无法远程连接mssqlserver2005服务器的解决
  5. [BZOJ1059][ZJOI2007]矩阵游戏
  6. [转载] python并行处理任务_Python 并行任务技巧
  7. Ti_ccs_2.0
  8. 计算机兼容性测试怎么做,如何进行兼容性测试
  9. 计算机的k代表什么意思,电脑CPU后缀K、U、HQ、M分别代表什么你清楚吗?
  10. 二分图匹配Hopcroft-Carp算法介绍
  11. 跑跑卡丁车组队竞速赛得分制度问题
  12. 计算机入门新人必学,电脑新手入门教程 让你快速上手
  13. 商业web 漏洞扫描神器———AWVS篇基础
  14. 记一次更换服务器主板需要设置的参数
  15. error link1158 无法运行rc.exe
  16. 数字化转型系列主题:究竟有哪家企业的数字化转型成功了?
  17. 群晖 6.1 重置 mysql,重置群晖Synology NAS
  18. 位运算 - 位运算基本操作
  19. Java基础 - 并发、锁
  20. vb怎么做根号计算机,VB编写的根号化简程序

热门文章

  1. 《Quick QR》用二维码实现云粘贴
  2. 安卓屏幕朗读app_ 这两个小说App有点狠,自带一千多个书源,宅家看小说全靠它...
  3. 第四期:有关大数据相关问答汇总,持续更新中~
  4. python 的没落_随着python的崛起,Java是否会在未来几年没落?
  5. aelf全新测试网轻型Dapp开发训练赛正式启动!
  6. 软文营销的间接作用有哪些?
  7. 搭建分发平台需要什么配置的服务器
  8. Billy O’Riordan加盟Brightcove担任国际销售高级副总裁
  9. 新太空出差3人组将在国庆入住中国空间站,其中包括女航天员
  10. PE结构详解(加壳脱壳必备知识)第二篇·存储地址介绍