Apache Doris (三十):Doris 数据导入(八)Spark Load 3- 导入HDFS数据

目录

1. 准备HDFS数据

2. 创建Doris表

3. 创建Spark Load导入任务

4. 查看导入任务状态


进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容!

宝子们订阅、点赞、收藏不迷路!抓紧订阅专题!


下面以导入HDFS中数据到Doris表为例,介绍Spark Load的使用,这里使用“spark1”Spark Resource 。

1. 准备HDFS数据

准备spark_load_data.csv数据文件,内容如下。

spark_load_data.csv:

1,zs,18,1002,ls,19,1013,ww,20,1024,ml,21,1035,tq,22,104

将以上数据文件上传到hdfs://mycluster/input/目录下:

[root@node1 ~]# hdfs dfs -put ./spark_load_data.csv  /input/

2. 创建Doris表

create table spark_load_t1(id int,name varchar(255),age int,score double)ENGINE = olapDUPLICATE KEY(id)DISTRIBUTED BY HASH(`id`) BUCKETS 8;

注意:Spark load 还不支持 Doris 表字段是String类型的导入,如果你的表字段有String类型的请改成varchar类型,不然会导入失败,提示 type:ETL_QUALITY_UNSATISFIED; msg:quality not good enough to cancel

3. 创建Spark Load导入任务

LOAD LABEL example_db.label1
(
DATA INFILE("hdfs://node1:8020/input/spark_load_data.csv")
INTO TABLE spark_load_t1
COLUMNS TERMINATED BY ","FORMAT AS "csv"
(id,name,age,score_tmp)
SET
(
score = score_tmp + age
))
WITH RESOURCE 'spark1'
("spark.driver.memory" = "512M","spark.executor.cores" = "1",
"spark.executor.memory" = "512M",
"spark.shuffle.compress" = "true"
)
PROPERTIES
(
"timeout" = "3600"
);

注意:

  1. 加载的HDFS中的文件,不支持HA写法,需要指定Active NameNode节点信息。
  2. 当 Spark Load 作业状态不为 CANCELLED 或 FINISHED 时,可以被用户手动取消。取消时需要指定待取消导入任务的 Label 。取消导入命令语法可执行 HELP CANCEL LOAD 查看。
  3. 如果想要清除对应完成的label,可以执行“clean label from example_db;”命令即可。

4. 查看导入任务状态

以上任务提交之后,可以在Yarn WebUI中查看提交的任务执行情况:

也可以在FE 节点“/software/doris-1.2.1/apache-doris-fe/log/spark_launcher_log”中查看执行日志,FE节点不一定在node1-node3哪台节点执行Spark ETL任务,执行任务的节点上才有以上日志路径,该日志默认保存3天。

在node1 mysql客户端也可以执行命令查看Spark Load导入情况,命令如下:

mysql> show load order by createtime desc limit 1\G;*************************** 1. row ***************************JobId: 37038Label: label1State: FINISHEDProgress: ETL:100%; LOAD:100%Type: SPARKEtlInfo: unselected.rows=0; dpp.abnorm.ALL=0; dpp.norm.ALL=5TaskInfo: cluster:spark1; timeout(s):3600; max_filter_ratio:0.0ErrorMsg: NULLCreateTime: 2023-03-10 16:11:44EtlStartTime: 2023-03-10 16:12:16EtlFinishTime: 2023-03-10 16:12:59LoadStartTime: 2023-03-10 16:12:59LoadFinishTime: 2023-03-10 16:13:09URL: http://node1:8088/proxy/application_1678424784452_0001/JobDetails: {"Unfinished backends":{"0-0":[]},"ScannedRows":5,"TaskNumber":1,"LoadBytes":0,"All backends":{"0-0":[-1]},"FileNumber":1,"FileSize":60} TransactionId: 24027ErrorTablets: {}1 row in set (0.01 sec)

当Yarn中任务执行完成之后,通过以上命令查询Spark Load 执行情况还在执行,主要是因为当Spark ETL job完成后,Doris还会加载数据到对应的BE中,完成之后状态会改变成FINISHED。

5. 查看Doris表结果

mysql> select * from spark_load_t1;+------+------+------+-------+| id   | name | age  | score |+------+------+------+-------+|    2 | ls   |   19 |   120 ||    3 | ww   |   20 |   122 ||    5 | tq   |   22 |   126 ||    4 | ml   |   21 |   124 ||    1 | zs   |   18 |   118 |+------+------+------+-------+

🏡个人主页:https://blog.csdn.net/qq_32020645?type=blog  主页包含各种IT体系技术
📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情!
👍点赞:赞同优秀创作,你的点赞是对我创作最大的认可!
⭐️ 收藏:收藏原创博文,让我们一起打造IT界的荣耀与辉煌!
✏️评论:留下心声墨迹,你的评论将是我努力改进的方向!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27406.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.net core 2.1 简单部署IIS运行

netcore的项目不像netFramework那么方便部署到iis还是要费点功夫的 比如我想把这个netcore2.1的项目部署到iis并运行: 按照步骤走: 一、确认自己的netcore环境 1、需要安装下面3个环境包(如果电脑已安装请忽略) 检查是否安装cmd命令:cmd&…

Spring @Autowired 注解原理

Spring Autowired 注解原理 1.Autowired 使用 ComponentScan("org.example.bean") public class AnnoContextDemo {Autowiredprivate User user;public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplic…

Sentinel流量规则模块(新增)

系统并发能力有限,比如系统A的QPS支持1个请求,如果太多请求过来,那么系统A就应该进行流量控制了,比如其他请求直接拒绝 新增流控规则介绍:新增流控规则窗口 1.资源名:默认请求路径。 2.针对来源:Se…

四维轻云地理空间数据在线协作管理平台为测绘行业用户解决了这些难题

测绘作为一个基础性行业,从大比例的地形图到铁路网、公路网的分布,再到互联网地图,测绘的身影随处可见。随着科技的不断发展与进步,无人机也成为测绘行业的一部分。通过无人机测绘技术能够获取高精度的影像数据并生成三维模型和点…

自监督语义分割面模型——Masked Autoencoders Are Scalable Vision Learners(MAE)论文阅读

1、摘要 This paper shows that masked autoencoders (MAE) are scalable self-supervised learners for computer vision. Our MAE approach is simple: we mask random patches of the input image and reconstruct the missing pixels. It is based on two core designs. F…

【动手学深度学习】pytorch-参数管理

pytorch-参数管理 概述 我们的目标是找到使损失函数最小化的模型参数值。 经过训练后,我们将需要使用这些参数来做出未来的预测。 此外,有时我们希望提取参数,以便在其他环境中复用它们, 将模型保存下来,以便它可以在…

Spark(26):Spark通讯架构

目录 0. 相关文章链接 1. Spark通信架构概述 2. Spark 通讯架构解析 0. 相关文章链接 Spark文章汇总 1. Spark通信架构概述 Spark 中通信框架的发展: Spark 早期版本中采用 Akka 作为内部通信部件。Spark1.3 中引入 Netty 通信框架,为了解决 Shuf…

今天实习第三天,vue(vue-cli部分,webpack部分,vue-router部分,elementUI部分)

01.创建第一个vue-cli。这里用的是node.js。早上的时候,就需要把node.js安装上去 02.node.js安装 第一步.去官网下载node.js https://nodejs.org/en 第二步.运行官网下载的node.js的msi文件(记住所有的node.js文件的安装包都是msi文件的形式&#xff0…

qt和vue交互

1、首先在vue项目中引入qwebchannel /******************************************************************************** Copyright (C) 2016 The Qt Company Ltd.** Copyright (C) 2016 Klarlvdalens Datakonsult AB, a KDAB Group company, infokdab.com, author Milian …

APP加固:助力移动应用安全合规

近日,工业和信息化部发布了2023年第2批侵害用户权益行为的App(SDK)名单,55款App因涉及强制、频繁、过度索取权限等问题而被通报。这一举措进一步凸显了合规对于APP发展的重要性。 根据工业和信息化部的通报,被通报的这…

Vue3统计数值(Statistic)

可自定义设置以下属性: 数值的标题(title),类型:string | slot,默认:‘’数值的内容(value),类型:string | number,默认:…

【程序人生】如何在工作中保持稳定的情绪?

前言 在工作中保持稳定的情绪是现代生活中一个备受关注的话题。随着职场压力和工作挑战的增加,我们常常发现自己情绪波动不定,甚至受到负面情绪的困扰。然而,保持稳定的情绪对于我们的工作效率、人际关系和整体幸福感都至关重要。 无论你是…