
# 使用Loader从FTP服务器导入数据到HBase
#### 操作场景
该任务指导用户使用Loader将数据从FTP服务器导入到HBase。
#### 前提条件
- 创建或获取该任务中创建Loader作业的业务用户和密码。
- 获取FTP服务器使用的用户和密码，且该用户具备FTP服务器上源文件的读取权限。如果源文件在导入后文件名要增加后缀，则该用户还需具备源文件的写入权限。
- 检查磁盘空间，确保没有出现告警且余量满足导入、导出数据的大小。
- 使用Loader从FTP服务器导入数据时，确保FTP服务器输入路径目录名、输入路径的子目录名及子文件名不能包含特殊字符/\\"':;,中的任意字符。
- 如果设置的作业需要使用指定YARN队列功能，该用户需要已授权有相关YARN队列的权限。
- 设置任务的用户需要获取该任务的执行权限，并获取该任务对应的连接的使用权限。
 
#### 操作步骤
**设置作业基本信息**
1. 登录"Loader WebUI"界面。 
   1. 登录FusionInsight Manager系统，具体请参见[访问集群Manager](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2124.html)。
   
   2. 选择"集群 \> 服务 \> Loader"。
   
   3. 单击"LoaderServer(*节点名称* ，主)"打开"Loader WebUI"界面。
      图1Loader WebUI界面   
      ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724866733.png "点击放大") 
   
   
   
   

1. 单击"新建作业"，进入"基本信息"界面，创建作业基本信息。 
   图2"基本信息"界面   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724746997.png "点击放大")
   1. 在"名称"中输入作业的名称。
   
   2. 在"类型"中选择"导入"。
   
   3. 在"组"中设置作业所属组，默认没有已创建的组，单击"添加"创建一个新的组，输入组的名称，单击"确定"保存。
   
   4. 在"队列"中选择执行该作业的YARN队列。默认值"root.default"。
   
   5. 在"优先级"中选择执行该作业的YARN队列优先级。默认值为"NORMAL"。可选值为"VERY_LOW"、"LOW"、"NORMAL"、"HIGH"和"VERY_HIGH"。
   
   
   
   
2. 在"连接"区域，单击"添加"新建一个连接，在"连接器"中选择"ftp-connector"，单击"添加"，输入配置连接参数，单击"测试"验证连接是否可用，待提示"测试成功"后单击"确定"。Loader支持配置多个FTP服务器操作数据，单击"添加"可增加多行FTP服务器的配置信息。 
   表1连接参数 
   | 参数名       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 示例      |
   |:---|:---|:---|
   | FTP服务器的IP | FTP服务器的IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | ftpName |
   | FTP服务器端口  | FTP服务器的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 22      |
   | FTP用户名    | 访问FTP服务器的用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | root    |
   | FTP密码     | 访问FTP服务器的密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | xxxx    |
   | FTP模式     | 设置FTP访问模式，"ACTIVE"表示主动模式，"PASSIVE"表示被动模式。不指定参数值，默认为被动模式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | PASSIVE |
   | FTP协议     | 设置FTP传输协议： - "FTP"：FTP协议。  - "SSL_EXPLICIT"：显式SSL协议。  - "SSL_IMPLICIT"：隐式SSL协议。  - "TLS_EXPLICIT"：显式TLS协议。  - "TLS_IMPLICIT"：隐式TLS协议。   不指定参数值，默认为FTP协议。 | FTP     |
   | 文件名编码类型   | 填写FTP服务器支持的文件名、文件路径编码格式，不填写时使用系统默认格式UTF-8。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | UTF-8   |
      
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   配置多个FTP服务器，多个服务器指定目录的数据将导入到HBase。
   **设置数据源信息**
   
   
3. 单击"下一步"，进入"输入设置"界面，设置数据源信息。 
   表2输入设置参数 
   | 参数名    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 示例                   |
   |:---|:---|:---|
   | 输入路径   | FTP服务器中源文件的输入路径，如果连接器配置多个地址此处可对应使用";"分隔多个输入路径，数量需要与连接器中服务器的数量一致。 说明： 路径参数可以使用宏定义，具体请参考[Loader算子配置项中使用宏定义](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1153.html)。                                                                                                                                                                                                                                                                                                                                                                       | /opt/tempfile;/opt   |
   | 文件分割方式 | 选择按文件或大小分割源文件，作为数据导入的MapReduce任务中各个map的输入文件。 - 选择"FILE"，表示按文件分割源文件，即每个map处理一个或多个完整的源文件，同一个源文件不可分配至不同map，完成数据导入后保持源文件的目录结构。  - 选择"SIZE"，表示按大小分割源文件，即每个map处理一定大小的输入文件，同一个源文件可分割至多个map，数据保存至输出目录时保存的文件数与map数量相同，文件名格式为"import_part_xxxx"，"xxxx"为系统生成的随机数，具有唯一性。                                                                                      | FILE                 |
   | 过滤类型   | 选择文件过滤的条件，与"路径过滤器"、"文件过滤器"配合使用。 - 选择"WILDCARD"，表示使用通配符过滤。  - 选择"REGEX"，表示使用正则表达式匹配。  - 不选择，则默认为通配符过滤。                                                                                                                                           | WILDCARD             |
   | 路径过滤器  | 与"过滤类型"配合使用，配置通配符或正则表达式对源文件的输入路径包含的目录进行过滤。"输入路径"不参与过滤。使用分号";"分隔多个服务器上的路径过滤器，每个服务器的多个过滤条件使用逗号","隔开。配置为空时表示不过滤目录。 - "?"匹配单个字符。  - "\*"配置多个字符。  - 在匹配条件前加"\^"表示取反，即文件过滤。   例如，当"过滤类型"选择"WILDCARD"时，将该参数设置为"\*"；当"过滤类型"选择"REGEX"时，将该参数设置为"\\\\.\*"。 | 1\*,2\*;1\*          |
   | 文件过滤器  | 与"过滤类型"配合使用，配置通配符或正则表达式对源文件的输入文件名进行过滤。使用分号";"分隔多个服务器上的文件过滤器，每个服务器的多个过滤条件使用逗号","隔开。该参数不能配置为空。 - "?"匹配单个字符。  - "\*"配置多个字符。  - 在匹配条件前加"\^"表示取反，即文件过滤。   例如，当"过滤类型"选择"WILDCARD"时，将该参数设置为"\*"；当"过滤类型"选择"REGEX"时，将该参数设置为"\\\\.\*"。                    | \*.txt,\*.csv;\*.txt |
   | 编码类型   | 源文件的编码格式，如UTF-8、GBK。导入文本文件时才能配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | UTF-8                |
   | 后缀名    | 源文件导入成功后对输入文件增加的后缀值。该值为空，则表示不加后缀。数据源为文件系统，该参数才有效。用户如果需增量导入数据建议设置该参数。 例如设置为".txt"，源文件为"test-loader.csv"，则导出后源文件名为"test-loader.csv.txt"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | .log                 |
   | 压缩     | 使用FTP协议导入数据时，是否开启压缩传输功能以减小带宽使用。 - 选择"true"，表示开启压缩。  - 选择"false"，表示关闭压缩。                                                                                                                                                                                                                                                                           | true                 |
      
   **设置数据转换**
   
   
4. 单击"下一步"，进入"转换"界面，设置数据传输过程中的转换操作。算子的选择和参数设置具体请参考[Loader算子帮助](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1119.html)及[表3]。
   
    表3算子输入、输出参数设置 
   | 输入类型     | 输出类型    |
   |:---|:---|
   | CSV文件输入  | HBase输出 |
   | HTML输入   | HBase输出 |
   | 固定宽度文件输入 | HBase输出 |
      
   图3算子操作方法示意   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676907510.png "点击放大")
   **设置数据保存信息并运行作业**
   
   
5. 单击"下一步"，进入"输出设置"界面，根据实际场景在"存储类型"选择"HBASE_BULKLOAD"或"HBASE_PUTLIST"，设置数据保存方式。 
   表4输出设置参数 
   | 存储类型           | 适用场景 | 参数名      | 说明                                                                            | 示例    |
   |:---|:---|:---|:---|:---|
   | HBASE_BULKLOAD | 数据量大 | HBase实例  | 在HBase作业中，Loader支持从集群可添加的所有HBase服务实例中选择任意一个。如果选定的HBase服务实例在集群中未添加，则此作业无法正常运行。 | HBase |
   | HBASE_BULKLOAD | 数据量大 | 导入前清理数据  | 导入前清空原表的数据。"True"为执行清空，"False"为不执行。不配置此参数则默认不执行清空。                            | true  |
   | HBASE_BULKLOAD | 数据量大 | Map数     | 配置数据操作的MapReduce任务中同时启动的map数量。参数值必须小于或等于3000，建议以FTP服务器当前最大连接数作为其取值。           | 20    |
   | HBASE_BULKLOAD | 数据量大 | Map数据块大小 | HBase不支持此参数，请配置"Map数"。                                                        | -     |
   | HBASE_PUTLIST  | 数据量小 | HBase实例  | 在HBase作业中，Loader支持从集群可添加的所有HBase服务实例中选择任意一个。如果选定的HBase服务实例在集群中未添加，则此作业无法正常运行。 | HBase |
   | HBASE_PUTLIST  | 数据量小 | Map数     | 配置数据操作的MapReduce任务中同时启动的map数量。参数值必须小于或等于3000。                                 | 20    |
   | HBASE_PUTLIST  | 数据量小 | Map数据块大小 | HBase不支持此参数，请配置"Map数"。                                                        | -     |
      
   
   
6. 单击"保存并运行"，开始保存并运行作业。 
   **查看作业完成情况**
   
   
7. 进入"Loader WebUI"界面，待"状态"显示"成功"则说明作业完成。 
   图4查看作业   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676747794.png "点击放大")
   
   
 
