HDFS数据恢复模式

在现有的HDFS中,为了保证元数据的高可用性,我们可以在配置项dfs.namenode.name.dir中配置多个元数据存储目录来达到多备份的作用。这样一来,如果其中一个目录文件损坏了,我们可以选择另外可用的文件。那么问题来了,如果所有备用的元数据都损坏了,不能用了,这个时候怎么办,那么是否就意味着集群就永远启动不起来了呢?这将会是一个多么糟糕的结果啊。在这里,我们就要引出本文的主题:HDFS的数据恢复模式(Recovery Mode)。

 

其实就是元数据的自我恢复的启动模式,所以他并不是DataNode上真实数据的恢复。

 

另外,数据恢复针对的是editlog,而不是fsimage。

 

HDFS数据恢复模式的原理:

NameNode在启动的时候,会通过FSNamesystem加载fsimage文件和editlog. 如果Editlog文件有损坏,会导致NameNode启动异常,从而导致NameNode不能正常启动.

 

在Recovery Mode下,NameNode则会智能的跳过这些错误的情况,从而保证NameNode成功启动,启动之后,会生成一个新的FSImage,然后再次退出,下一次就可以正常的启动的集群了,因为现在用的是新的fsimage

第一步:使用hdfs命令: hdfs namenode -recover

第二步:NameNode启动,会根据参数recover,进入recover流程,NameNode.doRecovery(startOpt,conf);

private static void doRecovery(StartupOption  startOpt, Configuration conf) throws IOException {

    String nsId = DFSUtil.getNamenodeNameServiceId(conf);

    String namenodeId = HAUtil.getNameNodeId(conf, nsId);

    initializeGenericKeys(conf, nsId, namenodeId);

    //省略

    FSNamesystem fsn = null;

try {

  //开始正式进入数据恢复流程

      fsn = FSNamesystem.loadFromDisk(conf);

      fsn.getFSImage().saveNamespace(fsn);

      MetaRecoveryContext.LOG.info("RECOVERYCOMPLETE");

    } catch (IOException e) {

      MetaRecoveryContext.LOG.info("RECOVERYFAILED: caught exception", e);

      throw e;

    } catch (RuntimeException e) {

      MetaRecoveryContext.LOG.info("RECOVERYFAILED: caught exception", e);

      throw e;

    } finally {

      if (fsn != null)

        fsn.close();

    }

  }

第三步: FSNamesystem调用loadFromDisk会判断参数是不是RECOVER,如果是RECOVER则会设置安全模式

第四步: 构造数据恢复上下文对象

MetaRecoveryContextrecovery = startOpt.createRecoveryContext();

final boolean staleImage = fsImage.recoverTransitionRead(startOpt, this, recovery);

第五步: recoverTransitionRead会调用loadFSImage方法,最后会调用到LoadEditRecords方法,如果文件损坏,如果不是recover模式,抛出异常;否则跳过错误记录,重新定位到下一个有效的操作记录

 

第六步:读完有效的editlog记录,就把它apply到内存

第七步:然后NameNode会执行一次saveNameSpace方法,就会生成一个新的FSImage文件

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据库方案设计 云数据库的云化改造 面向云化环境,数据库在多个方面需要进行改造,包括快捷的安装部署,提供数据 库的动态伸缩和资源隔离,以及监控、迁移、备份等一体化管理,以适应云环境中自动 安装部署、一体化监控管理,资源动态分配等需求。 快速安装及部署 一键部署和分钟级实例的创建: 1. 准备好预置数据库的docker镜像 a. 初始化好空数据目录(也支持根据场景预置数据) b. 数据库配置文件放置在docker镜像之外,通过映射的方式进入镜像内部 2. 用户选择实例资源后(CPU、内存),系统自动计算最佳设置 a. 用户选择实例的内存、CPU数量,使用场景(OLTP、OLAP) b. 根据用户选择,自动调整、优化参数(共享缓存、work_mem、等等) 3. 使用docker镜像加载外置配置文件启动数据 多种部署方式 1. 单机(单独的docker镜像) 2. 主备 和 负载均衡 a). 配置好的三个独立docker镜像,分别扮演主机、备机、读写分离节点 b). 三个节点配置文件都在外部,映射到内部运行 c). 启动时,根据用户的资源选择和网络场景,自动规划配置文件内容 3. KADB 集群 a). 根据角色配置好独立的docker镜像,分别扮演数据节点、协调器节点等 b). 节点的配置文件都放在外部,映射到内部运行 c). 根据用户设置的资源,场景,自动分配节点数量,配置节点参数. 在线伸缩 云环境中,支持在线调整任何一个实例使用的资源。对于数据库而言,若分配的资源 ,包括CPU、内存、磁盘等资源发生变化,数据库同样需要对于资源的变化实施生效。 CPU变化时,主要影响数据库的并发连接数和并行参数,在金仓云数据库中,并发连 接数和并行参数可以动态调整。 内存发生变化时,数据库的共享内存,排序内存等内存分配支持动态调整,动态扩展 。 磁盘发生变化时,数据库可以配置表空间的存储,以及表存储,分区的存储,动态使 用新增资源。 另外,随着实际业务的增长,数据库集群的负载可能超出初始设计的承受能力,使得 处理能力下降,不再满足业务需求,所以数据库集群支持在线扩展能力,即在不影响系 统正常使用的情况下,增加数据库的数据处理能力。 资源隔离 KingbaseES云数据库支持多租户模式,以实现多个租户之间的资源隔离。 每个租户创建自己的数据库,各自的数据库从元信息、用户数据到内存、以及日志信 息,都是彼此隔离的。每个租户的数据库不可以彼此访问。 各个租户的数据库可以方便的迁移和加载,支持各自的备份和恢复。 一体化管理 使用 KEM 监控数据库运行状态 a). 支持自主监控(由KEM主动呈现) b). 支持将收集的数据汇集到其他管理平台 使用 WEB 对象管理工具管理数据库对象 a). 单机形式的数据库对象管理 b). 主备形式的数据库对象管理 c). KADB集群数据库对象管理 二、向非关系型存储、大数据处理进行扩展 通用数据库 通用数据库按照处理业务的类型,分为交易型数据库和分析型数据库。 1. 交易数据库 主要用于交易类型的业务处理,例如:业务流程电子化,其他业务系统。面向所有 参与业务流程的人员。对数据的操作特点是:大量短、频、快的增删改操作。 2. 分析型数据库 主要用于统计分析,数据挖掘应用。面向决策者和分析人员。对数据库的操作特点 是:大量数据入库,大量复杂查询。 云上的数据库需要有这两种数据库,来应对更多的用户应用需求。 与大数据平台的互访 大数据计算平台,例如Spark、HIVE等,需要支持大数据计算平台与数据库互访。以 大数据计算平台为中心,建立分析平台。 1. 大数据计算平台访问数据库 a)大数据计算平台Spark: 可以提供JdbcRDD来访问单机数据库系统,并且根据某列对表进行分区,并行读取, 提升效率。对于集群数据库,Spark工作进程可以对每一个存储节点进行数据读取,通过 这种并行的方式提升效率。 b)大数据计算平台HIVE: 需要在HIVE中注册数据库表信息,将数据库的表映射成HIVE表,通过Hive- SQL进行数据读取,并在HIVE中进行运算。 2. 数据库访问大数据计算平台 大数据计算平台可以将数据,例如计算结果,写入到数据库中,再在数据库中,利用 SQL对数据进行分析。 云数据集成 与RDS的数据集成 数据库使用外部表技术,可以访问RDS中的其他数据。 支持多种格式的数据; 支持访问和更新数据。 同时,使用迁移工具实现到RDS的数据集成。 .与大数据存储平台的数据集成 数据库提供外部表技术,可以将交易型和分析型数据库与其他存储平台对接,在数 据库内部,通过外部表访问大数据存储平台中的数据,包括: a)与HDFS对接:外部表访问引擎(读写模块),通过调用HDFS的访问接口(InputF ormat,Out
内容简介   本书从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。全书共16章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何构建Hadoop集群,如何管理Hadoop;Pig简介;Hbase简介;Hive简介;ZooKeeper简介;开源工具Sqoop,最后还提供了丰富的案例分析。   本书是Hadoop权威参考,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装与运行Hadoop集群。 目录 第1章 初识Hadoop  数据数据!  数据存储与分析  与其他系统相比  关系型数据库管理系统  网格计算  志愿计算  1.3.4 Hadoop 发展简史  Apache HadoopHadoop生态圈 第2章 关于MapReduce  一个气象数据集  数据的格式  使用Unix工具进行数据分析  使用Hadoop分析数据  map阶段和reduce阶段  横向扩展  合并函数  运行一个分布式的MapReduce作业  Hadoop的Streaming  Ruby版本  Python版本  Hadoop Pipes  编译运行 第3章 Hadoop分布式文件系统  HDFS的设计  HDFS的概念  数据块  namenode和datanode  命令行接口  基本文件系统操作  Hadoop文件系统  接口  Java接口  从Hadoop URL中读取数据  通过FileSystem API读取数据  写入数据  目录  查询文件系统  删除数据  数据流  文件读取剖析  文件写入剖析  一致模型  通过 distcp并行拷贝  保持 HDFS 集群的均衡  Hadoop的归档文件  使用Hadoop归档文件  不足 第4章 Hadoop I/O  数据完整性  HDFS数据完整性  LocalFileSystem  ChecksumFileSystem  压缩  codec  压缩和输入切分  在MapReduce中使用压缩  序列化  Writable接口  Writable类  实现定制的Writable类型  序列化框架  Avro  依据文件的数据结构  写入SequenceFile  MapFile 第5章 MapReduce应用开发  配置API  合并多个源文件  可变的扩展  配置开发环境  配置管理  辅助类GenericOptionsParser,Tool和ToolRunner  编写单元测试  mapper  reducer  本地运行测试数据  在本地作业运行器上运行作业  测试驱动程序  在集群上运行  打包  启动作业  MapReduce的Web界面  获取结果  作业调试  使用远程调试器  作业调优  分析任务  MapReduce的工作流  将问题分解成MapReduce作业  运行独立的作业 第6章 MapReduce的工作机制  剖析MapReduce作业运行机制  作业的提交  作业的初始化  任务的分配  任务的执行  进度和状态的更新  作业的完成  失败  任务失败  tasktracker失败  jobtracker失败  作业的调度  Fair Scheduler  Capacity Scheduler  shuffle和排序  map端  reduce端  配置的调优  任务的执行  推测式执行  重用JVM  跳过坏记录  任务执行环境 第7章 MapReduce的类型与格式  MapReduce的类型  默认的MapReduce作业  输入格式  输入分片与记录  文本输入  二进制输入  多种输入  数据库输入(和输出)  输出格式  文本输出  二进制输出  多个输出  延迟输出  数据库输出 第8章 MapReduce的特性  计数器  内置计数器  用户定义的Java计数器  用户定义的Streaming计数器  排序  准备  部分排序  总排序  二次排序  联接  map端联接  reduce端联接  边数据分布  利用JobConf来配置作业  分布式缓存  MapReduce库类 第9章 构建Hadoop集群  集群规范  网络拓扑  集群的构建和安装  安装Java  创建Hadoop用户  安装Hadoop  测试安装  SSH配置  Hadoop配置  配置管理  环境设置  Hadoop守护进程的关键属性  Hadoop守护进程的地址和端口  Hadoop的其他属性  创建用户帐号  安全性  Kerberos和Hadoop  委托令牌  其他安全性改进  利用基准测试程序测试Hadoop集群  Hadoop基准测试程序  用户的作业  云上的Hadoop  Amazon EC2上的Hadoop 第10章 管理Hadoop  HDFS  永久性数据结构  安全模式  日志审计  工具  监控  日志  度量  Java管理扩展(JMX)  维护  日常管理过程  委任节点和解除节点  升级 第11章 Pig简介  安装与运行Pig  执行类型  运行Pig程序  Grunt  Pig Latin编辑器  示例  生成示例  与数据库比较  PigLatin  结构  语句  表达式  1.4.4 类型  模式  函数  用户自定义函数  过滤UDF  计算UDF  加载UDF  数据处理操作  加载和存储数据  过滤数据  分组与连接数据  对数据进行排序  组合和分割数据  Pig实战  并行处理  参数代换 第12章 Hive  1.1 安装Hive  1.1.1 Hive外壳环境  1.2 示例  1.3 运行Hive  1.3.1 配置Hive  1.3.2 Hive服务  1.3.3 Metastore  1.4 和传统数据库进行比较  1.4.1 读时模式(Schema on Read)vs.写时模式(Schema onWrite)  1.4.2 更新、事务和索引  1.5 HiveQL  1.5.1 数据类型  1.5.2 操作和函数  1.6 表  1.6.1 托管表(Managed Tables)和外部表(External Tables)  1.6.2 分区(Partitions)和桶(Buckets)  1.6.3 存储格式  1.6.4 导入数据  1.6.5 表的修改  1.6.6 表的丢弃  1.7 查询数据  1.7.1 排序(Sorting)和聚集(Aggregating)  1.7.2 MapReduce脚本  1.7.3 连接  1.7.4 子查询  1.7.5 视图(view)  1.8 用户定义函数(User-Defined Functions)  1.8.1 编写UDF  1.8.2 编写UDAF 第13章 HBase  2.1 HBasics  2.1.1 背景  2.2 概念  2.2.1 数据模型的“旋风之旅”  2.2.2 实现  2.3 安装  2.3.1 测试驱动  2.4 客户机  2.4.1 Java  2.4.2 Avro,REST,以及Thrift  2.5 示例  2.5.1 模式  2.5.2 加载数据  2.5.3 Web查询  2.6 HBase和RDBMS的比较  2.6.1 成功的服务  2.6.2 HBase  2.6.3 实例:HBase在Streamy.com的使用  2.7 Praxis  2.7.1 版本  2.7.2 HDFS  2.7.3 用户接口(UI)  2.7.4 度量(metrics)  2.7.5 模式设计  2.7.6 计数器  2.7.7 批量加载(bulkloading) 第14章 ZooKeeper  安装和运行ZooKeeper  示例  ZooKeeper中的组成员关系  创建组  加入组  列出组成员  ZooKeeper服务  数据模型  操作  实现  一致性  会话  状态  使用ZooKeeper来构建应用  配置服务  具有可恢复性的ZooKeeper应用  锁服务  生产环境中的ZooKeeper  可恢复性和性能  配置 第15章 开源工具Sqoop  获取Sqoop  一个导入的例子  生成代码  其他序列化系统  深入了解数据库导入  导入控制  导入和一致性  直接模式导入  使用导入的数据  导入的数据与Hive  导入大对象  执行导出  深入了解导出  导出与事务  导出和SequenceFile 第16章 实例分析  Hadoop 在Last.fm的应用  Last.fm:社会音乐史上的革命  Hadoop a Last.fm  用Hadoop产生图表  Track Statistics程序  总结  Hadoop和Hive在Facebook的应用  概要介绍  Hadoop a Facebook  假想的使用情况案例  Hive  问题与未来工作计划  Nutch 搜索引擎  背景介绍  数据结构  Nutch系统利用Hadoop进行数据处理的精选实例  总结  Rackspace的日志处理  简史  选择Hadoop  收集和存储  日志的MapReduce模型  关于Cascading  字段、元组和管道  操作  Tap类,Scheme对象和Flow对象  Cascading实战  灵活性  Hadoop和Cascading在ShareThis的应用  总结  在Apache Hadoop上的TB字节数量级排序  使用Pig和Wukong来探索10亿数量级边的 网络图  测量社区  每个人都在和我说话:Twitter回复关系图  degree(度)  对称链接  社区提取 附录A 安装Apache Hadoop  先决条件  安装  配置  本机模式  伪分布模式  全分布模式 附录B Cloudera’s Distribution for Hadoop 附录C 准备NCDC天气数据
第1章 初识Hadoop 数据数据数据存储与分析 与其他系统相比 关系型数据库管理系统 网格计算 志愿计算 1.3.4 Hadoop 发展简史 Apache HadoopHadoop生态圈 第2章 关于MapReduce 一个气象数据数据的格式 使用Unix工具进行数据分析 使用Hadoop分析数据 map阶段和reduce阶段 横向扩展 合并函数 运行一个分布式的MapReduce作业 Hadoop的Streaming Ruby版本 Python版本 Hadoop Pipes 编译运行 第3章 Hadoop分布式文件系统 HDFS的设计 HDFS的概念 数据块 namenode和datanode 命令行接口 基本文件系统操作 Hadoop文件系统 接口 Java接口 从Hadoop URL中读取数据 通过FileSystem API读取数据 写入数据 目录 查询文件系统 删除数据 数据流 文件读取剖析 文件写入剖析 一致模型 通过 distcp并行拷贝 保持 HDFS 集群的均衡 Hadoop的归档文件 使用Hadoop归档文件 不足 第4章 Hadoop I/O 数据完整性 HDFS数据完整性 LocalFileSystem ChecksumFileSystem 压缩 codec 压缩和输入切分 在MapReduce中使用压缩 序列化 Writable接口 Writable类 实现定制的Writable类型 序列化框架 Avro 依据文件的数据结构 写入SequenceFile MapFile 第5章 MapReduce应用开发 配置API 合并多个源文件 可变的扩展 配置开发环境 配置管理 辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 mapper reducer 本地运行测试数据 在本地作业运行器上运行作业 测试驱动程序 在集群上运行 打包 启动作业 MapReduce的Web界面 获取结果 作业调试 使用远程调试器 作业调优 分析任务 MapReduce的工作流 将问题分解成MapReduce作业 运行独立的作业 第6章 MapReduce的工作机制 剖析MapReduce作业运行机制 作业的提交 作业的初始化 任务的分配 任务的执行 进度和状态的更新 作业的完成 失败 任务失败 tasktracker失败 jobtracker失败 作业的调度 Fair Scheduler Capacity Scheduler shuffle和排序 map端 reduce端 配置的调优 任务的执行 推测式执行 重用JVM 跳过坏记录 任务执行环境 第7章 MapReduce的类型与格式 MapReduce的类型 默认的MapReduce作业 输入格式 输入分片与记录 文本输入 二进制输入 多种输入 数据库输入(和输出) 输出格式 文本输出 二进制输出 多个输出 延迟输出 数据库输出 第8章 MapReduce的特性 计数器 内置计数器 用户定义的Java计数器 用户定义的Streaming计数器 排序 准备 部分排序 总排序 二次排序 联接 map端联接 reduce端联接 边数据分布 利用JobConf来配置作业 分布式缓存 MapReduce库类 第9章 构建Hadoop集群 集群规范 网络拓扑 集群的构建和安装 安装Java 创建Hadoop用户 安装Hadoop 测试安装 SSH配置 Hadoop配置 配置管理 环境设置 Hadoop守护进程的关键属性 Hadoop守护进程的地址和端口 Hadoop的其他属性 创建用户帐号 安全性 Kerberos和Hadoop 委托令牌 其他安全性改进 利用基准测试程序测试Hadoop集群 Hadoop基准测试程序 用户的作业 云上的Hadoop Amazon EC2上的Hadoop 第10章 管理Hadoop HDFS 永久性数据结构 安全模式 日志审计 工具 监控 日志 度量 Java管理扩展(JMX) 维护 日常管理过程 委任节点和解除节点 升级 第11章 Pig简介 安装与运行Pig 执行类型 运行Pig程序 Grunt Pig Latin编辑器 示例 生成示例 与数据库比较 PigLatin 结构 语句 表达式 1.4.4 类型 模式 函数 用户自定义函数 过滤UDF 计算UDF 加载UDF 数据处理操作 加载和存储数据 过滤数据 分组与连接数据数据进行排序 组合和分割数据 Pig实战 并行处理 参数代换 第12章 Hive 1.1 安装Hive 1.1.1 Hive外壳环境 1.2 示例 1.3 运行Hive 1.3.1 配置Hive 1.3.2 Hive服务 1.3.3 Metastore 1.4 和传统数据
FusionInsightHD华为⼤数据平台 华为FusionInsight HD是⼀个分布式数据处理系统,对外提供⼤容量的数据存储、分析查询和实时流式数据处 理分析能⼒。 安全 架构安全、认证安全、⽂件系统层加密 可靠 所有管理节点组件均实现HA(High Availability) 集群异地灾备 数据备份恢复 易⽤ 统⼀运维管理 易集成 易开发 系统架构 Manager 作为运维系统,为FusionInsight HD提供⾼可靠、安全、容错、易⽤的集群管理能⼒,⽀持⼤规模集群的安装部署、监控、告警、⽤ 户管理、权限管理、审计、服务管理、健康检查、问题定位、升级和补丁等。 FusionInsight Manager由OMS和OMA组成: OMS:操作维护系统的管理节点,OMS⼀般有两个,互为主备。 OMA:操作维护系统中的被管理节点,⼀般有多个。 Hue Hue提供了FusionInsight HD应⽤的图形化⽤户界⾯。Hue⽀持展⽰多种组件,⽬前⽀持HDFS、Hive、YARN/MapReduce、 Oozie、Solr、ZooKeeper以及Spark。 Hue是建⽴在Django Python的Web框架上的Web应⽤程序,采⽤了MTV(模型M-模板T-视图V)的软件设计模式。(Django Python 是开放源代码的Web应⽤框架。)Hue由"Supervisor Process"和"WebServer"构成。"Supervisor Process"是Hue的核⼼ 进程,负责应⽤进程管理。"Supervisor Process"和"WebServer"通过"THRIFT/REST"接⼝与WebServer上的应⽤进⾏交 互,如图所⽰。 Loader 实现FusionInsight HD与关系型数据库、⽂件系统之间交换数据和⽂件的数据加载⼯具;同时也可以将数据从关系型数据库或者⽂件 服务器导⼊到FusionInsight HD的HDFS/HBase中,或者反过来从HDFS/HBase导出到关系型数据库或者⽂件服务器中。同时提供 REST API接⼝,供第三⽅调度平台调⽤。 Loader模型主要由Loader Client和Loader Server组成: - Flume ⼀个分布式、可靠和⾼可⽤的海量⽇志聚合系统,⽀持在系统中定制各类数据发送⽅,⽤于收集数据;同时,Flume提供对数据进⾏简 单处理,并写⼊各种数据接受⽅(可定制)的能⼒。 - FTP-Server FTP-Server是⼀个纯Java的、基于现有开放的FTP协议的FTP服务。FTP-Server⽀持FTP、FTPS协议,每个服务都⽀持PORT、 PASSIVE数据通信协议。⽤户或业务组件可通过通⽤的FTP客户端、传输协议提供对HDFS⽂件系统进⾏基本的操作,例如:⽂件上 传、⽂件下载、⽬录查看、⽬录创建、⽬录删除、⽂件权限修改等。 FTP-Server服务由多个FTP-Server进程或FTPS-Server进程组成。 FTP-Server服务可以部署在多个节点上,每个节点上只有⼀个FTP-Server实例,每个实例只有⼀个FTP Server进程。 Hive 建⽴在Hadoop基础上的开源的数据仓库,提供⼤数据平台批处理计算能⼒,能够对结构化/半结构化数据进⾏批量分析汇总完成数据 计算。提供类似SQL的Hive Query Language语⾔操作结构化数据存储服务和基本的数据分析服务。其基本原理是将HQL语⾔⾃动转 换成MapReduce任务,从⽽完成对Hadoop集群中存储的海量数据进⾏查询和分析。 Hive为单实例的服务进程,提供服务的原理是将HQL编译解析成相应的MapReduce或者HDFS任务,下图为Hive的结构概图。 Mapreduce 提供快速并⾏处理⼤量数据的能⼒,是⼀种分布式数据处理模式和执⾏环境。MapReduce是⼀种简化并⾏计算的编程模型,名字源于 该模型中的两项核⼼操作:Map和Reduce。Map将⼀个作业分解成为多个任务,Reduce将分解后多个任务处理的结果汇总起来,得 出最终的分析结果。 如图所⽰,MapReduce通过实现YARN的Client和ApplicationMaster接⼝集成到YARN中,利⽤YARN申请计算所需资源。 Storm 提供分布式、⾼性能、⾼可靠、容错的实时计算平台,可以对海量数据进⾏实时处理。CQL(Continuous Query Language)提供 的类SQL流处理语⾔,可以快速进⾏业务开发,缩短业务上线时间。 Spark 基于内存进⾏计算的分布式计算框架。在迭代计算的场景下,数据处理过程中的数据可以存储在内存中,提供了⽐MapReduce⾼10到 100倍的计算能⼒。Spa
数据库方案设计 云数据库的云化改造 面向云化环境,数据库在多个方面需要进行改造,包括快捷的安装部署,提供数据 库的动态伸缩和资源隔离,以及监控、迁移、备份等一体化管理,以适应云环境中自动 安装部署、一体化监控管理,资源动态分配等需求。 快速安装及部署 1.1 一键部署和分钟级实例的创建: 1. 准备好预置数据库的docker镜像 a. 初始化好空数据目录(也支持根据场景预置数据) b. 数据库配置文件放置在docker镜像之外,通过映射的方式进入镜像内部 2. 用户选择实例资源后(CPU、内存),系统自动计算最佳设置 a. 用户选择实例的内存、CPU数量,使用场景(OLTP、OLAP) b. 根据用户选择,自动调整、优化参数(共享缓存、work_mem、等等) 3. 使用docker镜像加载外置配置文件启动数据 1.2 多种部署方式 1. 单机(单独的docker镜像) 2. 主备 和 负载均衡 a). 配置好的三个独立docker镜像,分别扮演主机、备机、读写分离节点 b). 三个节点配置文件都在外部,映射到内部运行 c). 启动时,根据用户的资源选择和网络场景,自动规划配置文件内容 3. KADB 集群 a). 根据角色配置好独立的docker镜像,分别扮演数据节点、协调器节点等 b). 节点的配置文件都放在外部,映射到内部运行 c). 根据用户设置的资源,场景,自动分配节点数量,配置节点参数. 在线伸缩 云环境中,支持在线调整任何一个实例使用的资源。对于数据库而言,若分配的资 源,包括CPU、内存、磁盘等资源发生变化,数据库同样需要对于资源的变化实施生效。 CPU变化时,主要影响数据库的并发连接数和并行参数,在金仓云数据库中,并发连 接数和并行参数可以动态调整。 内存发生变化时,数据库的共享内存,排序内存等内存分配支持动态调整,动态扩 展。 磁盘发生变化时,数据库可以配置表空间的存储,以及表存储,分区的存储,动态 使用新增资源。 另外,随着实际业务的增长,数据库集群的负载可能超出初始设计的承受能力,使 得处理能力下降,不再满足业务需求,所以数据库集群支持在线扩展能力,即在不影响 系统正常使用的情况下,增加数据库的数据处理能力。 资源隔离 KingbaseES云数据库支持多租户模式,以实现多个租户之间的资源隔离。 每个租户创建自己的数据库,各自的数据库从元信息、用户数据到内存、以及日志 信息,都是彼此隔离的。每个租户的数据库不可以彼此访问。 各个租户的数据库可以方便的迁移和加载,支持各自的备份和恢复。 一体化管理 使用 KEM 监控数据库运行状态 a). 支持自主监控(由KEM主动呈现) b). 支持将收集的数据汇集到其他管理平台 使用 WEB 对象管理工具管理数据库对象 a). 单机形式的数据库对象管理 b). 主备形式的数据库对象管理 c). KADB集群数据库对象管理 二、向非关系型存储、大数据处理进行扩展 通用数据库 通用数据库按照处理业务的类型,分为交易型数据库和分析型数据库。 1. 交易数据库 主要用于交易类型的业务处理,例如:业务流程电子化,其他业务系统。面向所有 参与业务流程的人员。对数据的操作特点是:大量短、频、快的增删改操作。 2. 分析型数据库 主要用于统计分析,数据挖掘应用。面向决策者和分析人员。对数据库的操作特点 是:大量数据入库,大量复杂查询。 云上的数据库需要有这两种数据库,来应对更多的用户应用需求。 与大数据平台的互访 大数据计算平台,例如Spark、HIVE等,需要支持大数据计算平台与数据库互访。以 大数据计算平台为中心,建立分析平台。 1. 大数据计算平台访问数据库 a)大数据计算平台Spark: 可以提供JdbcRDD来访问单机数据库系统,并且根据某列对表进行分区,并行读取, 提升效率。对于集群数据库,Spark工作进程可以对每一个存储节点进行数据读取,通过 这种并行的方式提升效率。 b)大数据计算平台HIVE: 需要在HIVE中注册数据库表信息,将数据库的表映射成HIVE表,通过Hive- SQL进行数据读取,并在HIVE中进行运算。 2. 数据库访问大数据计算平台 大数据计算平台可以将数据,例如计算结果,写入到数据库中,再在数据库中, 利用SQL对数据进行分析。 云数据集成 3.1 与RDS的数据集成 数据库使用外部表技术,可以访问RDS中的其他数据。 支持多种格式的数据; 支持访问和更新数据。 同时,使用迁移工具实现到RDS的数据集成。 3.2.与大数据存储平台的数据集成 数据库提供外部表技术,可以将交易型和分析型数据库与其他存储平台对接,在数 据库内部,通过外部表访问大数据存储平台中的数据,包括: a)与HDFS对接:外部表访问引擎(读写模块),通过调用HDFS的访问接口(

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫言静好、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值