上一篇我们介绍了使用StreamLoad导入本地的数据,这篇文章我们介绍下使用HdfsLoad导入hadoop中的数据。下面直接开始演示:
一、在doris中创建一张表
CREATE TABLE `user` ( `id` int(11) NULL COMMENT "学生id", `name` varchar(50) NULL COMMENT "学生姓名", `age` tinyint(4) NULL COMMENT "学生年龄" ) ENGINE=OLAP DUPLICATE KEY(`id`) COMMENT "OLAP" DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "in_memory" = "false", "storage_format" = "V2" );
这里可以看出我们还是使用的之前文章演示使用的user表
二、制作数据,编写一个文本txt类型的数据
例如:users.txt,内容如下:
4,zhaoliu,20 5,tianqi,21 6,wangba,22
三、把这个文件上传到hdfs的路径下
hadoop使用的上传命令如下:
/usr/local/hadoop-2.6.0/bin/hadoop dfs -put /mnt/users.txt /users.txt
此时我们去下具体的文件信息
/usr/local/hadoop-2.6.0/bin/hadoop dfs -cat /users.txt
说明文件已经上传上去了,可以看到具体的内容和我们上面的TXT内容是一致的。
四、添加导入hdfs的sql语句
在doris中执行如下的命令
LOAD LABEL test.label_hdfsusers ( DATA INFILE("hdfs://10.206.16.8:59000/users.txt") INTO TABLE `user` COLUMNS TERMINATED BY "," (id,name,age) ) with HDFS ( "fs.defaultFS"="hdfs://10.206.16.8:59000", "hadoop.username"="root" ) PROPERTIES ( "timeout"="1200", "max_filter_ratio"="0.1" );
此时我们去数据库查看下数据是否被导入了。
上诉4,5,6的数据都被导入进来了。
如果数据量比较大,那么导入时间会比较长,我们可以使用如下命令查看进度:
show load order by createtime desc;
有时候我们一直看不到数据,我们也可以使用此命令查看下是否导入出现了问题,例如:
此时会在ErrorMsg里面显示具体的错误信息,根据错误信息进行修改即可。
还没有评论,来说两句吧...