<b id="1oxnx"></b>
  1. <tt id="1oxnx"></tt>
    <tt id="1oxnx"><address id="1oxnx"></address></tt>
      1. <cite id="1oxnx"><address id="1oxnx"><ol id="1oxnx"></ol></address></cite>
      2. 存储系统“数据之眼”的设计--数据探查服务

        版权声明:本文为博主原创文章,未经博主允许不得转载。 http://www.hyztqbx.tw/Androidlushangderen/article/details/88783397

        前言


        在大规模量级的分布式存储系统中,很多时候管理员以及用户都有特定条件的查询需求:比如用户哪个目录文件数据量是最多的?还有对于管理员的需求:哪个节点上存储的文件数量最多,又或者是否存在损坏数据块文件类似种种的问题。因此在大型分布式存储系统中,我们需要有一个能够快速透视,探查里面数据的工具。当然它的功能要远远大于目前文件系统提供的fsck这样的工具命令。对于这种工具,我们可以怎样对其进行设计呢?本文,笔者结合Hadoop Ozone Recon服务,来聊聊里面的一些相关设计思想。

        数据探查服务的初始点:元数据的同步


        这里需要大家明白一个关键的点,数据探查服务并不是要针对所有的物理数据进行一个个的扫描统计,而只是需要对中心控制节点的核心元数据进行探查分析即可。比如HDFS,那我们专门分析的对象就是FSImage文件。

        为了避免对实际生产系统造成影响,我们一般的做法是会从一个Standby的元数据文件进行定期同步,然后对这个同步而来的文件再进行二次分析。当然,有时我们可以做的更高级一些,只有首次同步时进行元数据文件的同步,后面只同步WAL的更新操作,相当于这是Standby的Follower。因为数据探查服务不会对元数据文件进行写操作,所以我们可以让这个文件变为read-only模式的。

        对于数据探查的定位,在这里它是一个服务,所以上述的行为应该被纳入到这个服务当中。

        数据探查服务的分析:索引结构的重新构建


        有时候,针对不同的查询分析需求,如果按照原来元数据文件内的索引构建方式,会导致非常低的效率(比如遍历完全统计),此时我们可以在服务中进行一定结构的转换。比如一种常见的方式:倒排索引的构建,或者带上前缀匹配的支持?;蛘吖菇ǔ霾煌琄ey对应的不同Value的含义,只要Value是我们所需要的就行。

        这里的索引结构的重构建可以和上面元数据的定期同步行为的速率保持一致,以达到准实时更新的效果。

        数据探查服务的结果:汇聚表DB的存储


        上述各个索引结构都构建完成后,我们可以做一些常规的汇总统计的操作,然后将这些结果存储到一张汇聚表中。然后用户可以通过这张汇聚表的数据来进行他们希望的查询请求。

        比如举个例子,我们存储了一张Container–>Blocks数的表数据,定义如下:

        CREATE TABLE `num_blocks_per_container` (
        `container_id` BIGINT,
        `num_blocks` INT,
         PRIMARY KEY (`container_id`)
        );
        

        和上述的步骤类似,这里的汇聚结果表也是需要被定期更新的,这样的话,用户就能够查询到近实时的结果。

        数据探查服务的额外功能:节点级别的统计


        数据探查服务不仅支持细粒度层面的元数据分析,当然它也应该包含节点层面的统计,诸如以下类似指标:

        • 节点磁盘使用空间
        • 节点总blocks数量

        这些节点层面的统计需要由数据探查服务定期对这些节点做一次查询操作,然后也将结果保存到上面的汇聚表中。这类结果数据对于系统管理员来说将会相当有用,比如说利用这些数据我们可以知道节点使用空间的趋势变化情况等等。

        数据探查服务的外部展现:用户控制台


        数据探查服务作为一项完整的数据分析服务,它不应该直接暴露给使用者。对于使用者来说,我们需要给他们提供一个Console的东西,用户看到的可以是直接提供好的用户命令,不同身份的用户能够使用的执行命令也是有所区分的。而Console里面的Console Server是数据探查服务的一个代理。

        在这个Console Server的服务里,我们可以进一步完善Security的功能,加入一些authentication,或者更方便用户进行查询使用的一些Feature,比如浏览器直接浏览查询功能。

        以上所有的设计参考自Hadoop Ozone Recon服务的设计,此服务的设计结构图如下,大家可以参考上面描述的进行比较。

        在这里插入图片描述

        引用


        [1].https://issues.apache.org/jira/browse/HDDS-1084. Ozone Recon Service

        展开阅读全文

        没有更多推荐了,返回首页

        展开

        热门文章

        最新评论

        2019今晚068期开什么码特 乐至县| 米脂县| 贺州市| 遂平县| 乌海市| 曲松县| 明水县| 乌鲁木齐市| 横山县| 金坛市| 杂多县| 垣曲县| 浮梁县| 孝感市| 都匀市| 东乌| 南投县| 库尔勒市| 南京市| 原平市| 思茅市| 大足县| 宜宾市| 霍邱县| 宁国市| 共和县| http://www.traxiff.tw 汤阴县| 孝义市| 浦县| 齐齐哈尔市| 雅安市| 时尚| 泰兴市| 高邮市| 塔河县| 余姚市| 宁海县| 淮南市| 井冈山市| 波密县| 太仓市| 沙河市| 正镶白旗| 高密市| 兴海县| 渝中区| 镇雄县| 广河县| 黄平县| 白城市| 贡嘎县| 丹巴县| 克东县| 峨眉山市| 大埔县| http://2172zij.tw 都昌县| 新宁县| 武冈市| 沽源县| 曲麻莱县| 竹北市| 固阳县| 茂名市| 句容市| 宿迁市| 永济市| 凉城县| 彭山县| 钟祥市| 法库县| 桂阳县| 遂川县| 百色市| 昭通市| 平阴县| 阿图什市| 台前县| 临西县| 新野县| 宝应县| 凯里市| 白水县| 涞水县| 布拖县| 军事| 湾仔区| 佛坪县| 肃宁县| 扶风县| http://www.var8592.co 含山县| 章丘市| 寻乌县| 和顺县| 甘肃省| 阳泉市| 迁西县| 花莲市| 巴塘县| 岗巴县| 牡丹江市| 宝鸡市| 依安县| 西和县| 常熟市| 开远市| 静乐县| 襄城县| 江源县| 漳州市| 黔江区| 泸水县| 邛崃市| 丰台区| 盘锦市| 兖州市| 合阳县| 通江县| 宁国市| http://www.jao4706.tw 扶绥县| 中方县| 珲春市| 临海市| 阳高县| 惠安县| 合肥市| 平泉县| 浪卡子县| 常山县| 民乐县| 邵武市| 呼图壁县| 勐海县| 鹤壁市| 大新县| 东乡族自治县| 蚌埠市| 阿拉善右旗| 开江县| 香河县| 汶川县| 哈密市| 武川县| 石城县| 通许县| 容城县| 庄浪县| 琼结县| http://vdf6207.co 隆子县| 浙江省| 新余市| 宁化县| 高碑店市| 临夏市| 遂宁市| 拜泉县| 平山县| 台东市| 隆德县| 阜新| 仪征市| 蒲江县| 北碚区| 宿松县| 陆河县| 云林县| 浙江省| 武定县| 萝北县| 敦煌市| 汽车| 山丹县| 柯坪县| 中阳县| 丹阳市| 分宜县| http://www.djb9782.co 乐亭县| 宝兴县| 遂宁市| 汉川市| 东兰县| 安徽省| 开封县| 乌兰浩特市| 兰考县| 亚东县| 福州市| 丹阳市| 喀喇沁旗| 邳州市| 读书| 凌海市| 西平县|