FusionInsight Loader基本原理

一枚核桃 发表于 2021/11/30 14:49:32 2021/11/30
【摘要】 Loader是在开源Sqoop组件的基础上进行了一些扩展,实现MRS与关系型数据库、文件系统之间交换“数据”、“文件”,同时也可以将数据从关系型数据库或者文件服务器导入到HDFS/HBase中,或者反过来从HDFS/HBase导出到关系型数据库或者文件服务器中。

Loader是在开源Sqoop组件的基础上进行了一些扩展,实现MRS与关系型数据库、文件系统之间交换“数据”、“文件”,同时也可以将数据从关系型数据库或者文件服务器导入到HDFS/HBase中,或者反过来从HDFS/HBase导出到关系型数据库或者文件服务器中。

Loader模型主要由Loader Client和Loader Server组成,

Loader的模型构成如下:

名称

描述

Loader Client

Loader的客户端,包括WebUI和CLI版本两种交互界面。

Loader Server

Loader的服务端,主要功能包括:处理客户端操作请求、管理连接器和元数据、提交MapReduce作业和监控MapReduce作业状态等。

REST API

实现RESTful(HTTP + JSON)接口,处理来自客户端的操作请求。

Job Scheduler

简单的作业调度模块,支持周期性的执行Loader作业。

Transform Engine

数据转换处理引擎,支持字段合并、字符串剪切、字符串反序等。

Execution Engine

Loader作业执行引擎,支持以MapReduce方式执行Loader作业。

Submission Engine

Loader作业提交引擎,支持将作业提交给MapReduce执行。

Job Manager

管理Loader作业,包括创建作业、查询作业、更新作业、删除作业、激活作业、去激活作业、启动作业、停止作业。

Metadata Repository

元数据仓库,存储和管理Loader的连接器、转换步骤、作业等数据。

HA Manager

管理Loader Server进程的主备状态,Loader Server包含2个节点,以主备方式部署。


Loader通过MapReduce作业实现并行的导入或者导出作业任务,不同类型的导入导出作业可能只包含Map阶段或者同时Map和Reduce阶段。

Loader同时利用MapReduce实现容错,在作业任务执行失败时,可以重新调度。

  • 数据导入到HBase

    在MapReduce作业的Map阶段中从外部数据源抽取数据。

    在MapReduce作业的Reduce阶段中,按Region的个数启动同样个数的Reduce Task,Reduce Task从Map接收数据,然后按Region生成HFile,存放在HDFS临时目录中。

    在MapReduce作业的提交阶段,将HFile从临时目录迁移到HBase目录中。

  • 数据导入HDFS

    在MapReduce作业的Map阶段中从外部数据源抽取数据,并将数据输出到HDFS临时目录下(以“输出目录-ldtmp”命名)。

    在MapReduce作业的提交阶段,将文件从临时目录迁移到输出目录中。

  • 数据导出到关系型数据库

    在MapReduce作业的Map阶段,从HDFS或者HBase中抽取数据,然后将数据通过JDBC接口插入到临时表(Staging Table)中。

    在MapReduce作业的提交阶段,将数据从临时表迁移到正式表中。

  • 数据导出到文件系统

    在MapReduce作业的Map阶段,从HDFS或者HBase中抽取数据,然后将数据写入到文件服务器临时目录中。

    在MapReduce作业的提交阶段,将文件从临时目录迁移到正式目录。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。