目录
1. HDFS Load案例
2. 注意事项
进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容!
宝子们订阅、点赞、收藏不迷路!抓紧订阅专题!
HDFS Load主要是将HDFS中的数据导入到Doris中,Hdfs load 创建导入语句,导入方式和Broker Load 基本相同,只需要将 WITH BROKER broker_name语句替换成 With HDFS即可。下面演示HDFS Load使用方式。
1) 创建Doris表
create table hdfs_load_t(
id int,
name string,
age int,
score double
)
ENGINE = olap
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(`id`) BUCKETS 8;
2) 准备HDFS数据
准备数据文件file.txt,内容如下:
1,zs,18,92.20
2,ls,19,87.51
3,ww,20,34.12
4,ml,21,89.33
5,tq,22,79.44
启动HDFS ,将以上文件上传至HDFS /input/目录下,该文件与Broker Load案例1中的文件一样。
#创建目录,上传文件
[root@node1 ~]# hdfs dfs -mkdir /input
[root@node1 ~]# hdfs dfs -put ./file.txt /input/
3) 准备HDFS Load语句
如果之前使用过某个label,可以通过如下命令清理对应库中历史label:
#清理 example_db中,Label 为 label1 的导入作业。
clean label label1 from example_db;
清理 example_db中所有历史 Label。
clean label from example_db;
编写HDFS Load语句,与Broker Load稍有不同的一点是指定HDFS用户参数为hdfs_user,
LOAD LABEL example_db.label1
(
DATA INFILE("hdfs://mycluster/input/file.txt")
INTO TABLE `hdfs_load_t`
COLUMNS TERMINATED BY ","
)
WITH HDFS
(
"hdfs_user"="root",
"fs.defaultFS"="hdfs://mycluster",
"dfs.ha.namenodes.mycluster"="node1,node2",
"dfs.namenode.rpc-address.mycluster.node1"="node1:8020",
"dfs.namenode.rpc-address.mycluster.node2"="node2:8020",
"dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
);
向表hdfs_load_t中导入文件file.txt。“username”指定hdfs用户,“password”指定hdfs密码,没有hdfs密码就填写空即可。
4) 查看导入状态
使用如下命令查看导入任务的状态信息:
mysql> show load order by createtime desc limit 1\G;
*************************** 1. row ***************************
JobId: 42148
Label: label1
State: FINISHED
Progress: ETL:100%; LOAD:100%
Type: BROKER
EtlInfo: unselected.rows=0; dpp.abnorm.ALL=0; dpp.norm.ALL=5
TaskInfo: cluster:N/A; timeout(s):14400; max_filter_ratio:0.0
ErrorMsg: NULL
CreateTime: 2023-03-13 14:55:18
EtlStartTime: 2023-03-13 14:55:21
EtlFinishTime: 2023-03-13 14:55:21
LoadStartTime: 2023-03-13 14:55:21
LoadFinishTime: 2023-03-13 14:55:22
URL: NULL
JobDetails: {"Unfinished backends":{"bbd718354cf7474d-93546d15f8530e9c":[]},"ScannedRows":5,"TaskNumber":1,"LoadBytes":130,"All backends":{"b
bd718354cf7474d-93546d15f8530e9c":[11002]},"FileNumber":1,"FileSize":70} TransactionId: 27031
ErrorTablets: {}
1 row in set (0.01 sec)
注意:如果load过程中有错误信息,可以通过执行“show load order by createtime desc limit 1\G;”命令查看到对应的Error信息,或者浏览器输入展示出的URL来查看错误信息。
5) 查看结果
#查询doris hdfs_load_t表
mysql> select * from hdfs_load_t;
+------+------+------+-------+
| id | name | age | score |
+------+------+------+-------+
| 1 | zs | 18 | 92.2 |
| 4 | ml | 21 | 89.33 |
| 3 | ww | 20 | 34.12 |
| 2 | ls | 19 | 87.51 |
| 5 | tq | 22 | 79.44 |
+------+------+------+-------+