Using Loader to Import Data from an SFTP Server to HDFS or OBS
Scenario
Use Loader to import data from an SFTP server to HDFS or OBS.
Prerequisites
- You have obtained the service username and password for creating a Loader job.
- You have had the permission to access the HDFS or OBS directories and data involved in job execution.
- You have obtained the username and password of the SFTP server as well as the read permission for the source files on the SFTP server. If file name extension needs to be added after a source file is imported, the user must have the write permission of the source file.
- No disk space alarm is reported, and the available disk space is sufficient for importing and exporting data.
- When using Loader to import data from the SFTP server, the input paths and input path subdirectories of the SFTP server and the name of the files in these directories do not contain any of the special characters /"':;.
- If a configured task requires the Yarn queue function, the user must be authorized with related Yarn queue permission.
- The user who configures a task must obtain execution permission on the task and obtain usage permission on the related connection of the task.
Procedure
Setting Basic Job Information
- Access the Loader web UI.
- Log in to FusionInsight Manager. For details, see Accessing FusionInsight Manager.
- Choose Cluster > Services > Loader.
- Click LoaderServer(Node name, Active). The Loader web UI is displayed.
Figure 1 Loader web UI
- Click New Job to go to the Basic Information page and set basic job information.
Figure 2 Basic Information
- Set Name to the name of the job.
- Set Type to Import.
- Set Group to the group to which the job belongs. No group is created by default. You need to click Add to create a group and click OK to save the created group.
- Set Queue to the Yarn queue that executes the job. The default value is root.default.
- Set Priority to the priority of the Yarn queue that executes the job. The default value is NORMAL. The options are VERY_LOW, LOW, NORMAL, HIGH, and VERY_HIGH.
- In the Connection area, click Add to create a connection, set Connector to sftp-connector, click Add, set connection parameters, and click Test to verify whether the connection is available. When "Test Success" is displayed, click OK. Loader allows multiple SFTP servers to be configured. Click Add to add the configuration information of multiple SFTP servers.
Table 1 Connection parameters Parameter
Description
Example Value
Name
Name of the SFTP server connection
sftpName
SFTP Server IP Address
IP address of the SFTP server
10.16.0.1
SFTP Server Port
Port number of the SFTP server
22
SFTP Username
Username for accessing the SFTP server
root
SFTP Password
Password for accessing the SFTP server
xxxx
SFTP Public Key
Public key of the SFTP server
OdDt/yn...etM
When multiple SFTP servers are configured, the data in the specified directories of the SFTP servers is imported to the same directory in HDFS or OBS.
Setting Data Source Information
- Click Next. On the displayed From page, set the data source information.
Table 2 Parameter description Parameter
Description
Example Value
Input Path
Input path or name of the source file on an SFTP server. If multiple SFTP server IP addresses are configured for the connector, you can set this parameter to multiple input paths separated with semicolons (;). Ensure that the number of input paths is the same as that of SFTP servers configured for the connector.
NOTE:You can use macros to define path parameters. For details, see Using Macro Definitions in Configuration Items.
/opt/tempfile;/opt
File Split Type
Indicates whether to split source files by file name or size. The files obtained after the splitting are used as the input files of each Map in the MapReduce task for data import.
- FILE: indicates that the source file is split by file. That is, each Map processes one or multiple complete files, the same source file cannot be allocated to different Maps, and the source file directory structure is retained after data import.
- SIZE: indicates that the source file is split by size. That is, each Map processes input files of a certain size, and a source file can be divided and processed by multiple Maps. After data is stored in the output directory, the number of saved files is the same as that of Maps. The file name format is import_part_xxxx, where xxxx is a unique random number generated by the system.
FILE
Filter Type
File filter condition. This parameter is used when Path Filter or File Filter is set.
- WILDCARD: indicates using a wildcard.
- REGEX: indicates using a regular expression.
- If the parameter is not set, a wildcard is used by default.
WILDCARD
Path Filter
Wildcard or regular expression for filtering the directories in the input path of the source files. This parameter is used when Filter Type is set. Input Path is not used for filtering. Use semicolons (;) to separate the path filters on multiple servers and use commas (,) to separate the filter conditions of each server. If this parameter is left empty, directories are not filtered.
- ? matches a single character.
- * indicates multiple characters.
- Adding ^ before the condition indicates negated filtering, that is, file filtering.
For example, when Filter type is set to WILDCARD, set the parameter to *; when Filter type is set to REGEX, set the parameter to \\.*.
1*,2*;1*
File Filter
Wildcard or regular expression for filtering the file names of the source files. This parameter is used when Filter Type is set. Use semicolons (;) to separate the path filters on multiple servers and use commas (,) to separate the filter conditions of each server. This parameter cannot be left blank.
- ? matches a single character.
- * indicates multiple characters.
- Adding ^ before the condition indicates negated filtering, that is, file filtering.
For example, when Filter type is set to WILDCARD, set the parameter to *; when Filter type is set to REGEX, set the parameter to \\.*.
*.txt,*.csv;*.txt
Encoding Type
Source file encoding format, for example, UTF-8 and GBK. This parameter can be set only in text file import.
UTF-8
Suffix
File name extension added to a source file after the source file is imported. If this parameter is empty, no file name extension is added to the source file. This parameter is valid only when the data source is a file system. You are advised to set this parameter in incremental data import.
For example, if the parameter is set to .txt and the source file is test-loader.csv, the source file name is test-loader.csv.txt after export.
.log
Compression
Indicates whether to enable compressed transmission when SFTP is used to export data.
- The value true indicates that compression is enabled.
- The value false indicates that compression is disabled.
true
Setting Data Transformation
- Click Next. On the displayed Transform page, set the transformation operations in the data transformation process. For details about how to select operators and set parameters, see Loader Operator Help and Table 3.
Table 3 Input and output parameters of the operator Input Type
Output Type
CSV File Input
File Output
HTML Input
File Output
Fixed File Input
File Output
Figure 3 Operator operation procedure
Setting Data Storage Information and Executing the Job
- Click Next. On the displayed To page, set Storage type to HDFS.
Table 4 Parameter description Parameter
Description
Example Value
File Type
Type of a file after the file is imported. The options are as follows:
- TEXT_FILE: imports a text file and stores it as a text file.
- SEQUENCE_FILE: imports a text file and stores it as a sequence file.
- BINARY_FILE: imports files of any format by using binary streams.
TEXT_FILE
Compression Format
Compression format of files imported to HDFS or OBS. Select a format from the drop-down list. If you select NONE or do not set this parameter, data is not compressed.
NONE
Output Directory
Directory for storing data imported into HDFS or OBS.
NOTE:You can use macros to define path parameters. For details, see Using Macro Definitions in Configuration Items.
/user/test
Delete Files Before Execution
(This parameter is available for MRS 3.5.0 or later.)
Whether to delete the files generated based on the file name identifier before the job is executed so that data can be reloaded.
- false (default): The files are not deleted before the job is executed.
- true: Specified files are deleted before the job is executed. If the Operation is set to OVERRIDE, the files overwrite the old files. Only the following connectors are supported:
- generic-jdbc-connector
- oracle-connector
- mysql-fastpath-connector
false
File Name Identifier
(This parameter is available for MRS 3.5.0 or later.)
File name identifier, which is used to generate the name of the loaded file.
- File name format: import_part_xxx_000000000
- xxx: file name
- Value range: [0-9], [a-z], [A-Z], hyphen (-), underscore (_), and dot (.)
- Value length: [1-255]
- This parameter is mandatory when Delete Files Before Execution is true.
12
Operation
Action during data import. When all data is to be imported from the input path to the destination path, the data is stored in a temporary directory and then copied from the temporary directory to the destination path. After the data is imported successfully, the data is deleted from the temporary directory. One of the following actions can be taken when duplicate file names exist during data transfer:
- OVERRIDE: overrides the old file.
- RENAME: renames as new file. For a file without an extension, a string is added to the file name as the extension; for a file with an extension, a string is added to the extension. The string is unique.
- APPEND: adds the content of the new file to the end of the old file. This action only adds content regardless of whether the file can be used. For example, a text file can be used after this operation, while a compressed file cannot.
- IGNORE: reserves the old file and does not copy the new file.
- ERROR: stops the task and reports an error if duplicate file names exist. Transferred files are imported successfully, while files that have duplicate names and files that are not transferred fail to be imported.
OVERRIDE
Extractors
Number of Maps that are started at the same time in a MapReduce task of a data configuration operation. This parameter cannot be set when Extractor Size is set. The value must be less than or equal to 3000. You are advised to set the parameter to the number of CPU cores on the SFTP server.
NOTE:To improve the data import speed, ensure that the following conditions are met:
- Each Map connection is equivalent to a client connection. Therefore, you must ensure that the maximum number of connections of the SFTP server is greater than the number of Maps.
- Ensure that the disk I/O or network bandwidth on the SFTP server does not reach the upper limit.
20
Extractor Size
Size of data processed by Maps that are started in a MapReduce task of a data configuration operation. The unit is MB. The value must be greater than or equal to 100. The recommended value is 1000. This parameter cannot be set when Extractors is set.
1000
- Click Save and run to save and run the job.
Checking the Job Execution Result
- Go to the Loader web UI. When Status is Succeeded, the job is complete.
Figure 4 Viewing job details
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot