dolphinscheduler 3.0.1数据质量

🔼上一集:dolphinscheduler 3.0.1 资源中心

*️⃣主目录:dolphinscheduler 3.0.1功能梳理及源码解读

🔽下一集:dolphinscheduler 3.0.1 数据源中心

🐬环境配置


  • /worker-server/conf/dolphinscheduler_env.sh
    • SPARK_HOME2 :配置spark安装目录
    • HADOOP_USER_NAME:增加该变量,填写hadoop集群的部署用户(HADOOP_HOME等不需要配置,目前我是没遇到过)
      在这里插入图片描述
      org.apache.hadoop.security.AccessControlException): Permission denied: user=dolphin, access=WRITE
      
  • /worker-server/conf/common.properties
    • data-quality.jar.name=dolphinscheduler-data-quality-3.0.1-SNAPSHOT.jar :保持jar包名称和编译后的名称一致,默认为dolphinscheduler-data-quality-dev-SNAPSHOT.jar
  • 给执行租户赋权,添加hadoop部署用户组,比如租户dolphin,hadoop部署用户组为bigdata
    sudo usermod -a -G bigdata dolphin
    

🐬定义质量节点测试


直接对着官网操作吧,最开始官网资料还没有3.0,后来就不看了,貌似多走了一些路。

  • 校验公式:[校验方式][操作符][阈值],如果结果为真,则表明数据不符合期望,执行失败策略
  • 校验方式:
    • [Expected-Actual][期望值-实际值] [Actual-Expected][实际值-期望值]
    • [Actual/Expected][实际值/期望值]x100%
    • [(Expected-Actual)/Expected][(期望值-实际值)/期望值]x100%
  • 操作符:=、>、>=、<、<=、!=
  • 期望值类型: 固定值 日均值 周均值 月均值 最近7天均值 最近30天均值 源表总行数 目标表总行数
  • 例子:
    • 校验方式为:[Expected-Actual][期望值-实际值] [操作符]:> [阈值]:0 期望值类型:固定值=9。
    • 假设实际值为10,操作符为 >, 期望值为9,那么结果 10 -9 > 0 为真,那就意味列为空的行数据已经超过阈值,任务被判定为失败
      在这里插入图片描述

🐠运行失败


按理说应该成功才对,结果不会小于0的
在这里插入图片描述
错误信息:

[INFO] 2022-10-26 08:20:10.909 +0000 [taskAppId=TASK-20221026-7339496693088_2-471-499] TaskLogLogger-class org.apache.dolphinscheduler.plugin.task.dq.DataQualityTask:[205] - process has exited, execute path:/tmp/dolphinscheduler3/exec/process/7338799615584/7339496693088_2/471/499, processId:260177 ,exitStatusCode:1 ,processWaitForStatus:true ,processExitValue:1
[INFO] 2022-10-26 08:20:11.582 +0000 [taskAppId=TASK-20221026-7339496693088_2-471-499] TaskLogLogger-class org.apache.dolphinscheduler.plugin.task.dq.DataQualityTask:[63] -  -> 22/10/26 16:20:10 INFO Client: Application report for application_1658989604268_0102 (state: FAILED)
	22/10/26 16:20:10 INFO Client: 
		 client token: N/A
		 diagnostics: Application application_1658989604268_0102 failed 1 times (global limit =2; local limit is =1) due to ApplicationMaster for attempt appattempt_1658989604268_0102_000001 timed out. Failing the application.
		 ApplicationMaster host: N/A
		 ApplicationMaster RPC port: -1
		 queue: default
		 start time: 1666771787933
		 final status: FAILED
		 tracking URL: http://bigdata02:8088/cluster/app/application_1658989604268_0102
		 user: hadoop
	22/10/26 16:20:10 ERROR Client: Application diagnostics message: Application application_1658989604268_0102 failed 1 times (global limit =2; local limit is =1) due to ApplicationMaster for attempt appattempt_1658989604268_0102_000001 timed out. Failing the application.
	Exception in thread "main" org.apache.spark.SparkException: Application application_1658989604268_0102 finished with failed status
		at org.apache.spark.deploy.yarn.Client.run(Client.scala:1283)
		at org.apache.spark.deploy.yarn.YarnClusterApplication.start(Client.scala:1677)
		at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:955)
		at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
		at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
		at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
		at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1043)
		at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1052)
		at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
	22/10/26 16:20:10 INFO ShutdownHookManager: Shutdown hook called
	22/10/26 16:20:10 INFO ShutdownHookManager: Deleting directory /tmp/spark-869c7fa1-4136-4458-8626-27961ce772e1
	22/10/26 16:20:10 INFO ShutdownHookManager: Deleting directory /tmp/spark-873afb0a-8352-48c7-981a-7be426e1c145
[INFO] 2022-10-26 08:20:11.582 +0000 [taskAppId=TASK-20221026-7339496693088_2-471-499] TaskLogLogger-class org.apache.dolphinscheduler.plugin.task.dq.DataQualityTask:[57] - FINALIZE_SESSION

在这里插入图片描述
测试用的spark是3.2版本,不知道报错是不是这个原因,暂时没时间研究了,有知道的欢迎指教
在这里插入图片描述

🐬源码


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
简单过了下,不深究了,后面还会单独研究后台核心代码

其它(spark-submit)20221114补充

spark-submit官网
在这里插入图片描述

组装好的命令没有看到--class配置,因为数据质量jar包中已有main函数,会直接调用该Main-Class: org.apache.dolphinscheduler.data.quality.DataQualityApplication

${SPARK_HOME2}/bin/spark-submit --master yarn --deploy-mode cluster --driver-cores 1 --driver-memory 512M --num-executors 2 --executor-cores 2 --executor-memory 2G --queue default --conf spark.yarn.maxAppAttempts=1 /home/dolphinscheduler/app/dolphinscheduler/worker-server/libs/dolphinscheduler-data-quality-3.0.1-SNAPSHOT.jar

在这里插入图片描述
在这里插入图片描述
jar包设置了Main-Class
在这里插入图片描述

1. 下载并安装Hadoop 下载Hadoop并解压缩到指定目录,配置Hadoop环境变量。 2. 下载并安装Zookeeper 下载Zookeeper并解压缩到指定目录,配置Zookeeper环境变量。 3. 下载并安装FastDFS 下载FastDFS并解压缩到指定目录,配置FastDFS环境变量。 4. 配置FastDFS 在FastDFS的安装目录下找到conf目录,将tracker.conf和storage.conf复制到另一个目录下作为配置文件。 修改tracker.conf和storage.conf配置文件中的IP地址和端口号。 启动tracker和storage服务: 进入FastDFS的安装目录,执行以下命令: ./trackerd /etc/fdfs/tracker.conf start ./storaged /etc/fdfs/storage.conf start 5. 配置dolphinscheduler 进入dolphinscheduler的安装目录,编辑conf/dolphinscheduler.properties文件。 配置资源中心相关属性: ``` # resource center properties ds.resourcemanager.url=http://localhost:8032 ds.resourcemanager.scheduler.address=http://localhost:8030 ds.resourcemanager.webapp.address=http://localhost:8088 ds.resourcemanager.webapp.https.address=https://localhost:8090 ds.resourcemanager.principal=hadoop/_HOST@EXAMPLE.COM ds.resourcemanager.keytab=/etc/security/keytabs/hdfs.headless.keytab ds.resourcemanager.default.queue=root.default ds.resourcemanager.fs.defaultFS=hdfs://localhost:9000 ds.fastdfs.tracker_servers=192.168.1.100:22122 ds.fastdfs.connect_timeout=5000 ds.fastdfs.network_timeout=30000 ds.fastdfs.charset=UTF-8 ds.fastdfs.http_anti_steal_token=false ds.fastdfs.http_secret_key=FastDFS1234567890 ds.fastdfs.http_tracker_http_port=8080 ds.fastdfs.tracker_http_port=8080 ds.fastdfs.http_tracker_https_port=8081 ds.fastdfs.tracker_https_port=8081 ``` 其中: - ds.resourcemanager.url:Hadoop的ResourceManager地址。 - ds.resourcemanager.scheduler.address:Hadoop的ResourceManager的scheduler地址。 - ds.resourcemanager.webapp.address:Hadoop的ResourceManager的webapp地址。 - ds.resourcemanager.webapp.https.address:Hadoop的ResourceManager的https地址。 - ds.resourcemanager.principal:Hadoop的ResourceManager的Kerberos principal。 - ds.resourcemanager.keytab:Hadoop的ResourceManager的Kerberos keytab文件路径。 - ds.resourcemanager.default.queue:Hadoop的ResourceManager的默认队列。 - ds.resourcemanager.fs.defaultFS:Hadoop的FileSystem的默认FileSystem。 - ds.fastdfs.tracker_servers:FastDFS的tracker服务器地址,多个地址用逗号分隔。 - ds.fastdfs.connect_timeout:FastDFS客户端连接超时时间,单位为毫秒。 - ds.fastdfs.network_timeout:FastDFS客户端网络超时时间,单位为毫秒。 - ds.fastdfs.charset:FastDFS客户端字符集。 - ds.fastdfs.http_anti_steal_token:FastDFS客户端是否开启防盗链。 - ds.fastdfs.http_secret_key:FastDFS客户端的secret_key。 - ds.fastdfs.http_tracker_http_port:FastDFS的tracker服务器的http端口。 - ds.fastdfs.tracker_http_port:FastDFS的tracker服务器的http端口。 - ds.fastdfs.http_tracker_https_port:FastDFS的tracker服务器的https端口。 - ds.fastdfs.tracker_https_port:FastDFS的tracker服务器的https端口。 6. 启动dolphinscheduler 进入dolphinscheduler的bin目录,执行以下命令: ./dolphinscheduler-daemon.sh start resourcemanager 启动成功后,可以访问http://localhost:12345/resourcemanager进行资源中心的管理。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韧小钊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值