【云驻共创】告诉你如何学习Loader数据转换

举报
Mr红凯 发表于 2021/12/19 16:09:18 2021/12/19
【摘要】 介绍了Loader的主要功能及其主要特性,然后介绍了Loader的作业管理和监控。大数据平台与外部数据源的交互,通过MapReduce并行处理,完成数据的导入与导出功能。

前言

Loader是基于开源Sqoop组件1.99.x版本进行了功能增强,主要用于大数据平台和结构化数据存储(例如关系数据库)之间进行高效的数据导入、导出服务。

大数据平台和这个传统的这个文件存储之间其实是有一定的关系的。比如说大数据分析的时候,数据是从什么地方来的,那么这时候可能的话需要从外部上去导入数据,大数据平台里面在进行数据分析的时候,可能会有一些这个相应的结果。结果这个数据我应该导出到什么地方去。比如说我要导出到这个关系型数据库里面去,或者说导出到这个文件系统里面去,那么这时候我应该使用什么样的工具去帮我去进行相应的导出。之前的话是由sqoop进行下实现的,后面我们loader进行对它进行相应的封装。因为的话在这个sqoop的时候,它只能去进行一个命令行的这种方式去进行使用,使用起来稍微的有点难度。我们l的loader降低了这种难度,提供一种可视化的一种界面。

目标

学习完本章后,您将能够:

  • 熟悉Loader是什么
  • 熟悉Loader能干什么
  • 掌握Loader的主要特性
  • 掌握Loader的系统架构
  • 掌握如何管理Loaderf作业
  • 掌握如何监控Loaderf作业

目录

1.Loader简介

2.Loader作业管理


一、Loader简介

什么是Loader?

Loader是实现大数据平台与关系型数据库、文件系统之间交换数据和文件的数据加载工具。提供可视化向导式的作业配置管理界面;提供定时调度任务,周期性执行Loader作业;在界面中可指定多种不同的数据源、配置数据的清洗和转换步骤、配置集群存储系统等。


Loader的应用场景

通过Loader,我们可以从关系型数据库或文件系统中把数据导入HBase或者Hive,HDFS中。反过来,Loader也可以从HDFS和HBase、Hive中导出数据。

Loader实现FusionInsight HD与关系型数据库、文件系统之间交换“数据”、“文件”,同时也可以将数据从关系型数据库或者文件服务器导入到FusionInsight HD的HDFS/HBase中,或者反过来从Hadoop HDFS/HBase导出到关系型数据库或者文件服务器中。

Loader特点

  • 图形化:提供图形化配置、监控界面,操作简便。
  • 高性能:利用MapReduce并行处理数据。
  • 高可靠:Loader Server采用主备双机;作业通过MapReduce执行,支持失败重试;作业失败后,不会残留数据。
  • 安全:Kerberos认证;作业权限管理。

Loader模块架构

Loader:主要负责管理外部数据源和Hadoop集群的数据导入、导出作业。根据用户配置的作业信息,向Yarn提交MR任务,通过MR并行完成数据的导入、导出工作。
Yarn : Loader提交数据导入、导出作业到Yarn,由Yarn分析MR作业并行完成数据的导入、导出操作。

HDFS/Hbase: Loader在Hadoop集群中支持保存(读取)的数据格式。

Extenal DataSource :外部数据源,与Hadoop数据源进行数据交互的源。目前支持关系型数据库(通过JDBC驱动)和文本文件(支持GZ压缩文件、CSV格式)

与Loader有交互关系的组件有HDFS、HBase、Hive、Yarn、Mapreduce和ZooKeeper。Loader作为客户端使用这些组件的某些功能,如存储数据到HDFS和HBase,从HDFS和HBase表读数据,同时Loader本身也是一个Mapreduce客户端程序,完成一些数据导入导出任务。

模块说明:

名称

描述

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作业的提交阶段,将文件从临时目录迁移到正式目录。


二、Loader作业管理

作业用来描述将数据从数据源经过抽取、转换和加载至目的端的过程。包括数据源位置及数据源属性、从源数据到目标数据的转换规则、目标端属性。

​ Loader提供了诸多功能,用于管理与作业相关的操作。包括创建作业、导入作业、导出作业、迁移作业分组、批量删除作业、启动作业、停止作业、查看作业历史记录、复制作业和删除指定作业等功能。

脏数据:是指不符和Loader转换规则的数据。

1、Loader的服务状态界面

点击“服务管理”,选择Loader,进入“Loader服务状态”界面。

2、Loader作业管理界面

登录MRS Manager,点击“服务管理”中的“Hue”4,再点击“Hue(主)”,进入Hue页面:

点击“Data Browsers”栏下的“Sqoop”,进入Sqoop作业页面:

作业用来描述将数据从数据源经过抽取、转换和加载至目的端的过程。它包括数据源位置及数据源属性、从源数据到目标数据的转换规则、目标端属性。

3、作业转换规则:
​ Loader提供了丰富的作用转换规则,能将数据按照不同的业务场景进行转换和清洗,转换成目标数据结构,实际应用中,如果不需要转换,可以不指定转换规则。

Loader提供了14中转换算子,描述如下:

长整型时间转换:实现长整型数值与日期类型的互换。
空值转换:将空值替换成指定值。
增加常量字段:生成常量字段。
随机值转换:生成羧基数据字段。
拼接转换:拼接已有字段,生成新字段。
分割转换:将已有字段,按指定分隔符,分割出新字段。
取模转换:对已有字段取模,生成新字段。
剪切字符串:通过指定起止位置,截取已有字符串类型的字段,生成新字段。
EL操作转换:指定算法,对字段值进行运算,目前支持的算法有:MD5sum、sha1sum、sha256sum和sha512sum等。
字符串大小写转换:对已有的字符串类型字典,切换大小写,生成新字段。
字符串逆序转换:对已有的字符串类型字段,做逆序变换,生成新字段。
字符串空格清除转换:对已有的字符串类型字段,清除左右空格,生成新字段。
过滤行转换:配置逻辑条件过滤掉含触发条件的行。
更新域:当满足某些条件时,更新字段的值。

4、创建Loader作业-基本信息

打开Sqoop页面,点击“新建作业”

配置作业基本信息

创建Loader作业-配置Hbase信息

Hbase_conn的表名配置

创建Loader作业 -配置HDFS信息

创建Loader作业-任务配置

5、监控作业执行状态

  • 查看所有作业执行状态:
  • 进入Sqoop作业管理界面。
  • 界面会显示当前的所有作业和作业最后一次执行状态。
  • 选中一个作业,可以点击上方或右方“操作”一栏中的按钮执行相应的操作。

监控作业执行状态–作业历史记录

查看指定作业历史执行记录:

  • 选中一个作业,点击“操作”中的“历史记录“按钮,进入作业历史查看界面。
  • 该界面显示作业每次执行的开始时间、运行时间(秒)、状态、失败原因、行/文件读取数、行/文件写入数、行/文件跳过数、脏数据链接、MapReduce日志链接。

客户端脚本介绍:

Loader除了提供图形化操作界面外,还体用了一套完整的shell脚本,通过这些脚本,可实现数据源的增删查改,作业的增删查改、启动作业、停止作业,查看作业状态,判断作业是否正在运行等功能。

脚本介绍如下:

lt-ctl:简称作业控制工具,用于查询作业状态、启动作业,停止作业以及判断作业是否在运行中。
lt-ucj:简称作业管理工具,用于查询、创建、修改和删除作业。
lt-ucc:简称数据源管理工具,用于查询、创建、修改和删除数据源连接信息。


总结

介绍了Loader的主要功能及其主要特性,然后介绍了Loader的作业管理和监控。大数据平台与外部数据源的交互,通过MapReduce并行处理,完成数据的导入与导出功能。

思考题

学习推荐

华为Learning网站: https://support.huawei.com/learning

华为e学云: https://support.huawei.com/learning/elearning

华为Support案例库:https://support.huawei.com/enterprise

本文整理自华为云社区【内容共创系列】活动。
查看活动详情:https://bbs.huaweicloud.com/blogs/314887
相关任务详情:Loader数据转换

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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