Loader介绍及操作实例

时间:2024-03-14 09:09:28

Loader简介

FusionInsight HD Loader能实现FusionInsight HD与外部数据源如关系型数据库、SFTP服务器、FTP服务器之间交换数据和文件。支持将数据或文件从关系型数据库或文件系统导入到FusionInsight HD系统中。

Loader支持的导入场景:

 

支持从关系型数据库导入数据到HDFS、HBase、Phoenix表、Hive表。

支持从SFTP服务器导入文件到HDFS、HBase、Phoenix表、Hive表。

支持从FTP服务器导入文件到HDFS、HBase、Phoenix表、Hive表

支持同一集群内HDFS导入文件到HBase

从VoltDB数据库导入数据到HDFS、HBase、Phoenix表、Hive表。

Loader支持的导出场景:

支持从HDFS中导出文件到SFTP服务器、关系型数据库。

支持从HBase中导出文件到SFTP服务器、关系型数据库。

支持从HDFS、HBase、Phoenix中导出数据到VoltDB数据库。

支持从Phoenix表导出数据到SFTP服务器、关系型数据库。

支持从Hive中导出数据到SFTP服务器、关系型数据库、VoltDB。

支持同一集群内HBase导出文件到HDFS。

Loader使用的两种途径

Loader支持通过界面可视化UI或者命令行工具调用他的功能。

UI界面

 

通过FusionInsight Manage的服务管理菜单,进入Loader服务,使用Loader页面进行Loader作业的创建与运行。本文以从MySQL导入数据到HBase作为实例对LoaderUI进行说明。详见《LoaderUI实例:从MySQL导入数据到HBase》一章。

命令行工具

 

Loader提供在客户端使用命令行的方式使用Loader服务。本文以从HBase导出数据到MySQL作为实例对命令行工具做了介绍,详见《命令行工具实例:从HBase导出数据到MySQL》一章。

注:Loader客户端中包含Loader的JavaAPI样例,但是该代码样例已经被废弃,所以通过JavaAPI调用Loader服务不建议使用。

实例介绍

本文中的实例,使用的版本为:FusionInsight HD V100R002C60U10

LoaderUI实例:从MySQL导入数据到HBase

         用户能通过LoaderUI界面方式来使用Loader的服务,实现数据导入或者导出功能。

实现步骤:

1.     登录Loader

 通过FusionInsight HD Manager登录LoaderUI界面

 

Loader介绍及操作实例

Loader介绍及操作实例

2.单击“新建作业”按钮,进入新建界面

Loader介绍及操作实例

3.配置连接器信息

选择“添加”或者“编辑”,创建新连接或者使用已有连接。

Loader介绍及操作实例

配置详细连接信息。

Loader介绍及操作实例

4.配置MySQL要导入到HBase的数据信息

配置要导入的数据库为test0502,表为teacher,导入的列为id及address。

Loader介绍及操作实例

5.配置输入信息(MySql列设置)

将左侧输入中的“表输入”拖动到右侧操作区,并单击编辑按钮进行输入项配置界面。

Loader介绍及操作实例

单击“自动识别”,识别列。

Loader介绍及操作实例

识别效果如下:

Loader介绍及操作实例

6.配置输出信息(HBase列设置)

将左侧输出中的“HBase输出”拖动到右侧操作区,并单击编辑按钮进行输入项配置界面。

Loader介绍及操作实例

设置HBase的表空间,列族,列等信息。至少要指定一个字段为主键。

Loader介绍及操作实例

7.用线连接输入输出配置

为输入及输出配置连线。

Loader介绍及操作实例

 

8.设置任务执行信息

Loader介绍及操作实例

8.查看结果

配置完成后单击保存并运行,看到Loader的首页有刚刚配置好的任务执行状况。

Loader介绍及操作实例

待任务执行完毕,即可通过HBase的JavaAPI等途径,查看是否导入数据成功。

 

LoaderUI实例:标准csv文件数据导入HBase时去掉数据的双引号。

CSV文件中数据带有双引号。例如“数据一”、“数据二”这种数据需要去掉双引号才能导入到HBase当中。

将数据导入HBase的配置方法与MySQL导入数据到HBase操作类似,不同的地方在于在新建的作业中,除了配置输入信息及输出信息,还要配置中间数据的转换步骤。即:配置算子。

Loader介绍及操作实例

实现步骤:

1.使用“剪切字符串”算子去掉开头处的双引号

将左侧转换中的“剪切字符串”拖动到右侧操作区,单击编辑,进行设置。截取“2”到“-1”(即末尾),得到去掉首位双引号的字符串。

2.使用“字符串逆序转换”算子逆序字符串一次

将左侧转换中的“字符串逆序转换”拖动右侧到操作区,单击编辑,进行设置。得到1中字符串的逆序字符串。

3. 使用“剪切字符串”算子去掉结尾处的双引号

 

将左侧转换中的“剪切字符串”拖动到右侧操作区,单击编辑,进行设置。“2”到“-1”(即末尾),截取步骤2中已经逆序过的字符串。

4. 使用“字符串逆序转换”得到目标字符串

将左侧转换中的“字符串逆序转换”拖动到右侧操作区,单击编辑,进行设置。将步骤3中的字符串逆序,得到目标字符串(去掉字符串首位双引号的字符串)。

以上四步分转换过程即可去掉数据的双引号。

命令行工具实例:从HBase导出数据到MySQL

 

         除了LoaderUI,用户还能在客户端通过Loader的工具,以命令行的方式使用Loader的服务。在本实例中使用预先准备好的作业模板,搭配命令行完成功能完成HBase导出数据到MySQL功能。

作业模板为xml文件,文件名格式为“数据原保存位置-to-数据新保存位置.xml”,例如“hbase-to-mysql.xml”。

作业模板对应的转换步骤配置文件,文件类型为json,例如“hbase-to-mysql.json”。

模板跟转换配置文件准备好后,使用Loader-tool的“lt-ucc”、“lt-ucj”、“lt-ctl”工具实现HBase导出数据到MySQL。

lt-ucc:连接器配置工具,用于连接器的创建、更新和删除操作。

 

lt-ucj:作业配置工具,用于对作业的创建、更新删除操作。

lt-ctl:作业管理工具,用于启停作业,查询作业状态与进度,查询作业是否运行中。

 

实现步骤:

1.使用lt-ucc创建HbaseToMySQL连接器

假定Loader客户端的安装目录为:“/opt/hadoopclient/Loader/”。

命令:

./lt-ucc -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/hbase-to-mysql.xml -a create

 

命令中使用到了login-info.xml及hbase-to-mysql.xml两个文件。

login-info.xml

login-info.xml为授权配置文件包含如下参数。

参数名称

 

描述

 

hadoop.config.path

 

填写Hadoop集群“core-site.xml”、“hdfs-site.xml”和“krb5.conf”三个配置文件的保存目录。默认保存在“Loader客户端安装目录/Loader/loader-tools-1.99.3/loader-tool/hadoop-config/”。

 

authentication.type

 

Loader服务的鉴权类型,请根据FusionInsight HD集群认证模式填写:

 

§  “kerberos”:表示安全模式。

 

§  “simple”:表示普通模式。

 

user.keytab

 

是否使用keytab文件认证,参数值为“true”与“false”。

 

authentication.user

 

安全模式中若不使用keytab认证,配置访问Loader服务的“人机”用户名。

 

authentication.password

 

安全模式中若不使用keytab认证,配置访问Loader服务的用户密码加密字符串。

 

说明:

 

使用安装客户端的用户执行以下命令加密密码。加密工具第一次执行时自动生成随机动态**并保存在“.loader-tools.key”中,加密工具每次加密密码时会使用此动态**。删除“.loader-tools.key”后加密工具执行时会重新生成新的随机**并保存在“.loader-tools.key”中。

 

sh Loader客户端安装目录/Loader/loader-tools-1.99.3/encrypt_tool password

 

authentication.principal

 

安全模式中使用keytab认证,配置访问Loader服务的“机机”用户名。

 

authentication.keytab

 

安全模式中使用keytab认证,配置访问Loader服务的“机机”用户keytab文件目录,需包含绝对路径。

 

zookeeper.quorum

 

配置连接ZooKeeper节点的IP地址和端口,参数值格式为“IP1:port,IP2:port,IP3:port”,以此类推。默认端口号为“24002”。

 

sqoop.server.list

 

配置连接Loader的浮动IP和端口,参数值格式为“floatip:port”。默认端口号为“21351”。

 

 

hbase-to-mysql.xml

hbase-to-mysql.xml为作业模板。

配置实例:

Loader介绍及操作实例

hbase-to-mysql.json

hbase-to-mysql.json为作业模板对应的转换步骤配置文件

Loader介绍及操作实例

执行结果判断

执行命令后如无报错信息,且显示如下信息,则表示连接器创建成功。

User login success. begin to execute task.

 

2.使用lt-ucj创建HbaseToMySQL作业

命令

./bin/lt-ucj -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -w /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/ hbase-to-mysql.xml -a create

 

命令中使用到了login-info.xml及hbase-to-mysql.xml两个文件。文件的介绍详见《使用lt-ucc创建HbaseToMySQL连接器》一章。

执行结果判断

执行命令结束后如无报错信息,且显示如下信息,则表示作业创建成功。

User login success. begin to execute task.

 

 

3.使用lt-ctl查看HbaseToMySQL作业状态

命令

./bin/lt-ctl -l /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/job-config/login-info.xml -n HTSnn -a status

 

其中HTSnn为hbase-to-mysql.xml中配置的作业名称。

 

执行结果判断

执行命令结束后显示类似如下信息,则命令执行成功。

Job: HTSnn

 

Status:RUNNING

 

Progress: 0.0

 

总结

用户在从传统数据库迁移到大数据环境的时候,Loader能很好的帮助我们对旧的数据进行迁移。且支持多种导入导出功能。但是在使用过程中我们可能会遇到一些问题。一些经验之谈再次做简单列举。

1.使用与FusionInsight HD相匹配的文档

例如在执行命令行作业启动的时候,提示HBase实例找不到。

当遇到问题时我们可以查阅产品文档,在使用文档时,需要注意的是,一定要使用与系统版本匹配的文档。例如“HBase实例找不到”这个错误,就是因为在C50的HD环境中使用了C60的作业模板导致的。Loader组件在FusionInsight HD版本中在持续更新。细节上会有写差异。

2.LoaderUI与命令行相互辅助完成目标

在使用Loader命令行工具的时候,遇到问题可以使用LoaderUI进行辅助,例如本文中Loader-tool工具在使用的时候涉及到作业模板对应的转换步骤Json格式的配置文件的准备工作。如果拿不定Json中算子的配置写法,可以在LoaderUI中配置好算子,然后使用UI自带的导出功能,导出具体的算子Json代码段。目前LoaderUI不支持完整的Loader作业导出为Json,但是单个算子导出是可以的。该功能在一定程度上能帮助我们书写Json配置文件。

3.使用日志辅助定位问题

单纯的错误提示可能不足以定位问题,此时需要获取错误发生点附近的完整日志。定位问题发生的原因。完整日志可以通过FusionInsight Manage的“系统设置菜单”中“日志下载”选择相应的服务日志进行获取。

原文:https://developer.huawei.com/ict/forum/thread-21501.html