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

news2024/11/24 13:44:50

目录

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,100

2,ls,19,101

3,ww,20,102

4,ml,21,103

5,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 = olap

DUPLICATE 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: 37038

         Label: label1

         State: FINISHED

      Progress: ETL:100%; LOAD:100%

          Type: SPARK

       EtlInfo: unselected.rows=0; dpp.abnorm.ALL=0; dpp.norm.ALL=5

      TaskInfo: cluster:spark1; timeout(s):3600; max_filter_ratio:0.0

      ErrorMsg: NULL

    CreateTime: 2023-03-10 16:11:44

  EtlStartTime: 2023-03-10 16:12:16

 EtlFinishTime: 2023-03-10 16:12:59

 LoadStartTime: 2023-03-10 16:12:59

LoadFinishTime: 2023-03-10 16:13:09

           URL: 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,"FileSi

ze":60} TransactionId: 24027

  ErrorTablets: {}

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.coloradmin.cn/o/766269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【iOS】—— 属性关键字及weak关键字底层原理

文章目录 先来看看常用的属性关键字有哪些:内存管理有关的的关键字:(weak,assign,strong,retain,copy)关键字weak关键字assignweak 和 assign 的区别:关键字strong&#…

时间序列的季节性:3种模式及8种建模方法

分析和处理季节性是时间序列分析中的一个关键工作,在本文中我们将描述三种类型的季节性以及常见的8种建模方法。 什么是季节性? 季节性是构成时间序列的关键因素之一,是指在一段时间内以相似强度重复的系统运动。 季节变化可以由各种因素引起&#xf…

看见未来:定位咨询如何预测行业趋势

商业竞争时代,变化无处不在。科技日新月异,消费者需求日益多元,市场环境更加动态不定。在这个快速发展的时代,如果企业想要继续领先,就必须有能力预见未来,适应并驾驭这些变化,这就是定位咨询的…

【QT】使用QtCreator进行debug

使用QtCreator进行debug 简单操作 设置断点 鼠标右键在需要打断点的地方打断点 debug 点击小甲虫按钮,启动之后可以看到三个窗口表格 这里显示变量的值。 这里显示函数当前的执行处以及断点的地方 这三个按钮分别代表的含义是: step into: 单步执行&…

通过宝塔面板部署一个SpringBoot+Vue前后端分离项目的指南(三更)

采取的部署方案 阿里云服务器->FinalShell->宝塔面板。 近期需要将自己的一个SpringBootVue前后端分离项目,并且是分模块开发的项目部署到服务器上,记录一下踩坑的地方,结合C站大佬的解决方案,循循善诱一步步部署到服务器上…

部署开源项目 Casdoor 身份认证管理系统到本地

前言 Casdoor是一个基于OAuth 2.0、OIDC、SAML 和 CAS 的,UI-first的身份和访问管理(IAM)/单点登录(SSO)平台。使用 Go 和react开发,前后端分离,内置第三方应用登录服务。 Casdoor 有四个核心概念,分别是 组织(Organization)&am…

vue3+antd——项目搭建初始化配置——技能提升

vue-antd-admin vue2 版本链接: https://gitee.com/iczer/vue-antd-admin?_fromgitee_search vue3 版本链接: https://github.com/stepui/stepin-template 预览地址: https://stepui.gitee.io/stepin-template 使用文档: http://stepui.gitee.io/step…

全网最全,接口测试面试题+答案,轻松拿捏面试官...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 你怎么理解get和p…

5. 缓存模块

缓存概述 对于缓存功能,相信大家都十分熟悉了。一旦我们发现系统的性能存在瓶颈需要优化时,可能第一时间想到的方式就是加缓存。缓存本质上是一种空间换时间的技术,它将计算结果保存在距离用户更近、或访问效率更高的存储介质中,…

使用supervisor启动进程open files too many问题

今天线上出现了open files too many的问题,查看问题: 1. ulimit -a查看系统最大值发现可以开启的文件句柄只有1024个 果断修复: 1. 查看全局配置文件 ls /etc/security/limits.d/ 比如环境中有如下配置文件,20-nproc.conf名字可…

e2e测试框架之Cypress

谈起web自动化测试,大家首先想到的是Selenium!随着近几年前端技术的发展,出现了不少前端测试框架,这些测试框架大多并不依赖于Selenium,这一点跟后端测试框架有很大不同,如Robot Framework做Web自动化测试本…

linux -rw-r--r-x的含义

-rw-r--r-x的含义 权限显示位一共为10位,分为四段,从第2位算起,每3个1组 -rw-r--r-x-表示为普通文件文件所属用户拥有的权限rw-:426该用户所属组拥有的权限r--:4其他用户拥有的权限r-x:415 操作英文对应数…

计及需求响应和电能交互的多主体综合能源系统主从博弈优化调度策略(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、数据、文章 💥1 概述 文献来源: 摘要:针对区域综合能源系统多物理系统耦合和多利益主体参与特点,如何考虑各运行主体调度地位与调度…

Spring初识(二)

前言 经过前面的学习,我们已经知道spring就是包含了众多方法的Ioc,那么既然是容器,就具备两个功能,我们接下来就是要介绍以下两个功能: 1.将对象存储到容器(spring)中: 2.从容器(spring)中将对象取出来. 这两个功能就应发出来,spring的创建和使用. 一.Spring创建 我们先来说…

web浏览器在线预览Excel,PDF,world文档解决方案

众所周知啊,在web浏览器中是无法直接预览Excel、world文档等文件的,PDF有的浏览器是打开预览,有的浏览器是跳转到下载页,行为不一致也是让开发者头疼的事情。 今天给大家提供一个解决方案,实现office文件在线预览的解…

vue3中使用Vue.Draggable的clone模式及遇到的坑

最近有个需求是从左边一个列表中,拖动列表元素到右边列表中,并且不是移动拖拽,而是复制拖拽,元素在右边列表中可以重复,比如左边是参加某个游戏的队员名单,右边是出场顺序,队员可以重复上场。类…

网络运维工作是什么的?

互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 724 小时为用户提供高质量的服务。 运维人员对公司互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强,进行日常巡检发现服务…

【数学建模】数据预处理

在数学建模赛题中,官方给所有选手的数据可能受到主观或客观条件的影响有一定的问题,如果不进行数据的处理而直接使用的话可能对最终的结果造成一定的影响,因此为了保证数据的真实性和建模结果的可靠性,需要在建模之前对数据进行相…

VS工程项目中属性中无Qt设置问题解决方案

VS工程项目中属性中无Qt设置问题解决方案 若VS工程中,创建的是Qt工程,或者从Qt Creator工程转换为VS 工程时,VS项目属性中确无Qt Project Setttings等设置时,可通过如下方案解决 1. 右键项目,在下拉框中选择Qt项 2.…

微信号长时间不用会被腾讯回收

我是卢松松,点点上面的头像,欢迎关注我哦! 估计很多人不知道的一个冷知识:你的微信号并不归你本人所有,你只有账号的使用权,微信账号的所有权归腾讯公司所有。如果长期不使用,或者是违规&#…