dolphin 配置data 从文件导入hive 实践(一)

DATAX数据同步工具 1、DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。2、DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。 阅读详情

datax 支持多种数据源的相互读写,作为开源软件,提供了离线采集功能,方便系统开发,过程中遇到诸多配置,需要开发者自己探索,免费同样有成本

配置模板

{
    "setting": {},
    "job": {
        "setting": {
            "speed": {
                "channel": 2
            }
        },
        "content": [
            {
                "reader": {
                    "name": "txtfilereader",
                    "parameter": {
                        "path": ["/data/test/test.txt"],
                        "encoding": "UTF-8",
                        "column": [
                            {
                                "index": 0,
                                "type": "string"
                            },
                            {
                                "index": 1,
                                "type": "string"
                            }
                        ],
                        "fieldDelimiter": "\t"
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://****:9000",
                        "fileType": "TEXT",
                        "path": "/user/hive/warehouse/sz_center_devdb.db/cat",
                        "fileName": "catfile",
                        "column": [
                            {
                                "name": "cat_id",
                                "type": "STRING"
                            },
                            {
                                "name": "cat_name",
                                "type": "STRING"
                            }
                        ],
                        "writeMode": "append",
                        "fieldDelimiter": "\t",
                        "compress":"NONE"
                    }
                }
            }
        ]
    }
}

注意:文本文件需要上传到datax 所在服务器

执行报错一:

Hadoop 权限异常

      Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=default, access=WRITE, inode="/user/hive/warehouse/sz_center_devdb.db":anonymous:supergroup:drwxr-xr-x
                at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:496)
                at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:336)
                at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:241)
                at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1909)
                at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1893)
                at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkAncestorAccess(FSDirectory.java:1852)
                at org.apache.hadoop.hdfs.server.namenode.FSDirWriteFileOp.resolvePathForStartFile(FSDirWriteFileOp.java:323)
                at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInt(FSNamesystem.java:2635)
                at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:2577)
                at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.create(NameNodeRpcServer.java:807)
                at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.create(ClientNamenodeProtocolServerSideTranslatorPB.java:494)
                at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
                at org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:532)
                at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1070)
                at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1020)
                at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:948)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:422)
                at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1845)
                at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2952)

                at org.apache.hadoop.ipc.Client.call(Client.java:1476)
                at org.apache.hadoop.ipc.Client.call(Client.java:1407)
                at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229)
                at com.sun.proxy.$Proxy9.create(Unknown Source)
                at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.create(ClientNamenodeProtocolTranslatorPB.java:296)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
                at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
                at com.sun.proxy.$Proxy10.create(Unknown Source)
                at org.apache.hadoop.hdfs.DFSOutputStream.newStreamForCreate(DFSOutputStream.java:1623)
                ... 18 more

这里是因为Hadoop 目录没有权限。
这里执行的用户是default
dataX 模板中没有配置用户的地方,这里先去Hadoop 配置目录权限

Hadoop 目录权限配置

hdfs dfs -ls /
hdfs dfs -mkdir /user
hdfs dfs -mkdir /hbase
hdfs dfs -ls /
hadoop fs -chmod 777 /user
hadoop fs -chmod 777 /hbase
# 循环所有子目录配置权限
hadoop fs -chmod -R 777 /hbase

然后运行dataX 任务成功。
但从hive 链接中发现数据乱码,这里就是 hive的文件类型和分隔符不一致导致

在这里插入图片描述
这里回顾日志发现读取文本异常

[WI-0][TI-0] - [INFO] 2024-11-06 16:16:36.229 +0800 o.a.d.p.t.a.AbstractTask:[169] -  -> 
        2024-11-06 16:16:35.230 [0-0-0-reader] INFO  TxtFileReader$Task - reading file : [/data/test/test.txt]
        2024-11-06 16:16:35.231 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] attemptCount[1] is started
        2024-11-06 16:16:35.268 [0-0-0-writer] INFO  HdfsWriter$Task - begin do write...
        2024-11-06 16:16:35.268 [0-0-0-writer] INFO  HdfsWriter$Task - write to file : [hdfs://10.80.18.165:9000/user/hive/warehouse/sz_center_devdb.db/cat__f395492b_e42a_47e5_a52b_214ab8bf833a/catfile__d369974c_fdeb_4601_b118_67ae6e97e197]
        2024-11-06 16:16:35.341 [0-0-0-reader] INFO  UnstructuredStorageReaderUtil - CsvReader使用默认值[{"captureRawRecord":true,"columnCount":0,"comment":"#","currentRecord":-1,"delimiter":"\t","escapeMode":1,"headerCount":0,"rawRecord":"","recordDelimiter":"\u0000","safetySwitch":false,"skipEmptyRecords":true,"textQualifier":"\"","trimWhitespace":true,"useComments":false,"useTextQualifier":true,"values":[]}],csvReaderConfig值为[null]
        2024-11-06 16:16:35.351 [0-0-0-reader] WARN  UnstructuredStorageReaderUtil - 您尝试读取的列越界,源文件该行有 [1] 列,您尝试读取第 [2] 列, 数据详情[1 hello]
        2024-11-06 16:16:35.356 [0-0-0-reader] ERROR StdoutPluginCollector - 脏数据: 
        {"message":"您尝试读取的列越界,源文件该行有 [1] 列,您尝试读取第 [2] 列, 数据详情[1 hello]","record":[{"byteSize":7,"index":0,"rawData":"1 hello","type":"STRING"}],"type":"reader"}
        2024-11-06 16:16:35.357 [0-0-0-reader] WARN  UnstructuredStorageReaderUtil - 您尝试读取的列越界,源文件该行有 [1] 列,您尝试读取第 [2] 列, 数据详情[2 cat]
        2024-11-06 16:16:35.357 [0-0-0-reader] ERROR StdoutPluginCollector - 脏数据: 
        {"message":"您尝试读取的列越界,源文件该行有 [1] 列,您尝试读取第 [2] 列, 数据详情[2 cat]","record":[{"byteSize":5,"index":0,"rawData":"2 cat","type":"STRING"}],"type":"reader"}
        2024-11-06 16:16:35.793 [0-0-0-writer] INFO  HdfsWriter$Task - end do write
        2024-11-06 16:16:35.841 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] is successed, used[623]ms
        2024-11-06 16:16:35.841 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] completed it's tasks.
[WI-0][TI-0] - [INFO] 2024-11-06 16:16:45.231 +0800 o.a.d.p.t.a.AbstractTask:[169] -  -> 
        2024-11-06 16:16:45.222 [job-0] INFO  StandAloneJobContainerCommunicator - Total 2 records, 12 bytes | Speed 1B/s, 0 records/s | Error 2 records, 12 bytes |  All Task WaitWriterTime 0.000s |  All Task WaitReaderTime 0.000s | Percentage 100.00%
        2024-11-06 16:16:45.222 [job-0] INFO  AbstractScheduler - Scheduler accomplished all tasks.
        2024-11-06 16:16:45.223 [job-0] INFO  JobContainer - DataX Writer.Job [hdfswriter] do post work.
        2024-11-06 16:16:45.224 [job-0] INFO  HdfsWriter$Job - start rename file [hdfs://10.80.18.165:9000/user/hive/warehouse/sz_center_devdb.db/cat__f395492b_e42a_47e5_a52b_214ab8bf833a/catfile__d369974c_fdeb_4601_b118_67ae6e97e197] to file [hdfs://10.80.18.165:9000/user/hive/warehouse/sz_center_devdb.db/cat/catfile__d369974c_fdeb_4601_b118_67ae6e97e197].
[WI-0][TI-0] - [INFO] 2024-11-06 16:16:46.231 +0800 o.a.d.p.t.a.AbstractTask:[169] -  -> 

暂时不确定是源文件格式问题 还是编码问题

或者是任务配置问题。

后续出结果后更新。

执行异常二

在这里插入图片描述

数据为空,或者数据列不对应。
这种情况执行日志没有任何异常,执行结果也是成功,但是目标的hive 表里没有数据。

这时候就看hive的分隔符配置了。

如何查看hive表的分隔符

执行命令

show create table hello    

查看

在这里插入图片描述

‘org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe’ # 默认分隔符,行分割符:“\n”,列分割符:“^A”
这个在data JSON 中还不能直接配置,必须使用转义字符

默认存储格式textfile

JSON 里配置 TEXT

参考资料:https://blog.youkuaiyun.com/mn525520/article/details/106876384
https://blog.youkuaiyun.com/u010520724/article/details/121999575
https://blog.youkuaiyun.com/qq_36039236/article/details/108101345

生效hive 建表语句、dataX json 任务配置参见

配置示例:www.fancv.com

dolphinscheduler搭配datax跨库数据库全量更新 python位系统自带地址,目录为、/usr/lib/pyhton2.7,但是在配置时,不PYTHONE_HOME只到/usr,下面$PYTHON_HOME/bin 修改为 $PYTHON_HOME/lib,在执行datax服务时默认会默认带上/python2.7,所以这里要去掉;配置地址在/dolphinscheduler-bin/bin/env/dolphinscheduler_env.sh。执行tar -zxvf datax.tar.gz。4)执行任务:上线任务,执行任务。3、设置项目及工作流。 阅读详情

相关推荐

dolphinscheduler-3.4.0

dolphinscheduler集群部署

docsz的博客 660

第二章 数据迁移之Dolphinscheduler调度DataX从Mysql全量导入Hive

Dolphinscheduler调度DataX从Mysql全量导入Hive

qq_27924553的博客 7949

dolphinscheduler配置

dolphinscheduler使用hive,hadoop,spark,datax,python,scala修改添加的配置

DolphinScheduler调用DataX

在DolphinScheduler使用DataX

u012938208的博客 1176

电机控制实战:SVPWM五段式与七段式算法在STM32上的实现对比

本文深入对比了SVPWM五段式与七段式算法在STM32上的实现效果,详细分析了两种算法在占空比控制、开关损耗和波形质量等方面的差异。通过实测数据,为工程师提供了针对不同应用场景的选型建议,包括电池供电设备和高精度伺服控制系统的优化方案。

h6i7j8的博客 584

ICG cell如何通过Latch结构消除与门clock gating中的glitch?

本文深入解析了ICG Cell如何利用Latch结构解决传统与门时钟门控中的毛刺问题。通过将电平敏感锁存器与门控与门结合,ICG Cell将使能信号的变化严格限制在时钟低电平的安全窗口内采样和锁存,从而在时钟有效沿期间提供稳定的控制信号,从根本上消除了因信号延迟不同步而产生的glitch,确保了门控时钟的纯净与电路功能的可靠性。

weixin_29234423的博客 467

Dolphinscheduler配置Datax踩坑记录

tmp/dolphinscheduler/exec/process 下文件创建失败问题 dolphinscheduler调度datax任务时需要在tmp/dolphinscheduler/exec/process 目录下创建一系列临时文件,但是在worker运行日志中/opt/soft/dolphinscheduler/logs/dolphinscheduler-worker.log看到创建失败的报错 [taskAppId=TASK-1-10-13]:[178] - datax task failure j

快乐星球 1万+

Windows下Python调用D435i相机避坑指南:从SDK版本选择到RealSense Viewer报错解决

本文详细介绍了在Windows环境下使用Python调用Intel D435i相机的完整避坑指南。重点解决了SDK版本选择问题,推荐使用稳定的Intel RealSense SDK 2.54.2版本,并提供了从环境配置、常见报错解决到实际应用案例的全流程实践指导,帮助开发者高效完成相机部署与开发。

palm99的专栏 923

第二章 基于dolphinscheduler的Datax组件进行数据迁移之Oracle到hive

1、源表 create table T_YYBZB_TGH_BANKINFO ( id NUMBER, bank_id NUMBER, bank_name varchar(200) ); 同步源系统数据,每天一个分区表 2、创建hive目标表 (1)编写建表脚本 create table ods.ods_t_yybzb_tgh_bankinfo_di ( id int, bank_id int, bank_name string ) partitione

qq_27924553的博客 2761

SAP增强实施-第四代显式和隐式增强技术介绍

概念介绍 SAP第四代增强- Enhancement-Point,分为2种显式增强和隐式增强,显式增强就是手动加入到程序中的Enhancement options,隐式增强就是系统内置的Enhancement options。 第四代增强其实是第三代上的加强,都属于面向对象语言的接口技术的应用,但第四代增强使SAP增强实施更具灵活性,四代增强可以直接在源代码里面写增强了代码了,输入参数也不像 二代...

weixin_40672823的博客 7953

保姆级避坑指南:在Ubuntu 22.04上用ROS2 Humble搞定TurtleBot3的SLAM与导航(附5个常见报错解决方案)

本文提供了一份详细的Ubuntu 22.04上使用ROS2 Humble和TurtleBot3进行SLAM建图与导航的避坑指南,涵盖Gazebo启动失败、场景加载问题、环境变量设置、GLIBCXX版本冲突及Nav2参数配置等5个常见报错的解决方案,帮助开发者高效完成机器人导航项目。

weixin_29062823的博客 285

在 Apache DolphinScheduler 3.4.2 上使用原生 Amazon EMR Serverless 插件

本文介绍了如何在Apache DolphinScheduler 3.4.2版本中集成使用Amazon EMR Serverless任务插件。主要内容包括: 功能概述: 支持可视化提交Spark/Hive作业到EMR Serverless 提供状态轮询、日志回显、自动取消等功能 支持与EMR on EC2任务混合编排 优势对比: EMR Serverless免运维、按需计费的优势 与DolphinScheduler结合实现自动化数据管线 部署指南: 下载安装3.4.2版本 安装EMR Serverless插件

Turk的专栏 437

2025.06.17【WGS】|多样品VCF文件中每个样品SNP数统计方法详解(含代码与注释)

摘要:本文介绍了一种从合并后的VCF文件中统计每个样品SNP数目的方法。通过解析VCF文件中的GT字段,排除纯合参考(0/0)和缺失(./.)的基因型,准确计算各样本的SNP位点数。文中提供了完整的Python脚本,利用bcftools工具高效处理大规模VCF文件,并支持输出SNP统计结果。该方法适用于群体遗传学和RAD-seq等高通量测序数据分析的质控环节,还可扩展为统计杂合/纯合SNP等进阶需求。脚本使用简单,只需输入VCF文件即可生成样本-SNP数目的统计报表。

1697

Apache DolphinScheduler 运维排障 FAQ 全解析:从架构认知到生产实践

> **导读**:本文围绕 Apache DolphinScheduler 官方中文 FAQ([docs/docs/zh/faq.md](https://link.gitcode.com/i/cf48c4bdf086f29d78eca3c7dc8ee647))展开,系统梳理了服务组成与内存规划、任务调度与优先级、Worker 分组与多集群支持、容错机制、资源中心与 HDFS、网络 IP 获取、缓存

gitblog_00284的博客 878

一文带你了解什么是RDMA

RDMA(Remote Direct Memory Access,远程直接内存访问)是一种起源于高性能计算领域的通信技术,如今已广泛应用于数据中心。该技术使得用户程序能够绕过操作系统内核及CPU,直接与网络接口卡(NIC)交互,实现网络通信。这种方式不仅大幅提升了通信带宽,还显著降低了网络延迟,优化了整体性能。

嵌入式技术开发 6016

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LarkMidTable 一站式开源数据中台:产品架构、数据集成能力与完整部署指南

LarkMidTable(中文名“云雀”)是一个一站式开源的数据中台产品,围绕元数据管理、数据仓库开发、数据质量管理与数据可视化四大能力,为数据前台提供高效赋能与数据服务。本篇基于项目根目录的 [README_EN.md](https://link.gitcode.com/i/45ef0a72b0991b4255dcc3f8c5dcec10) 展开,结合仓库内安装手册 [部署文档](https:/

gitblog_00138的博客 198

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Apache DolphinScheduler 伪集群部署完整指南:单机部署 Master/Worker/API/Alert 四服务实战

伪集群(Pseudo-Cluster)部署是把 Apache DolphinScheduler 的全部核心服务——master-server(调度器)、worker-server(执行器)、api-server(API 服务)、alert-server(告警服务)——部署在同一台物理机上的模式。它是介于 Standalone 体验模式与多机生产集群之间的关键形态:既保留了完整的服务拆分与分布式注册

gitblog_01424的博客 1004

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【亲测最新版本】DolphinScheduler 3.4.0 安装部署文档

DolphinScheduler 3.4.0 采用 Master/Worker 架构,依赖 Zookeeper 注册中心、MySQL 8.4 存储元数据、HDFS 作为资源中心。部署需规划多节点集群,推荐至少2个Master和Worker实现高可用。环境准备包括配置主机名与hosts、创建具备sudo权限的hadoop用户、配置SSH免密登录及安装JDK 17。MySQL 8.4通过RPM安装,需初始化并创建DS专用数据库与账号。Zookeeper集群部署于独立节点,DS安装包解压后拷贝驱动与配置文件,修改

大数据架构师,深耕车联网实时数仓。专注 Flink / Paimon / Doris 流批一体、CDC 同步与实时 AI 推理,把生产里的架构选型、作业实战和故障排查整理成 4 个连载系列,只写实测跑得通的方案,欢迎私信交流。 47

实时离线数仓实战指南:构建高性能数据湖架构

《实时离线数仓实战》是一个基于电商系统的完整数据仓库解决方案,采用Flink、Doris、Paimon、Hudi和Iceberg等前沿技术,构建了支持实时分析和离线处理的一体化数据湖架构。该项目为数据工程师提供了从数据采集到分析应用的全链路技术实现。 ## 架构设计深度解析 本项目采用独特的实时数仓与离线数仓双引擎并行架构,在数据处理逻辑上保持一致,但技术实现路径不同,为数据仓库建设提供了多元

gitblog_00133的博客 1080

Apache DolphinScheduler Java 任务节点实战指南:JAVA/JAR 双运行模式详解

本指南以 Apache DolphinScheduler 的 Java 任务节点(Task Plugin)为核心,讲解如何在 DAG 工作流中通过「源码模式」与「JAR 模式」执行 Java 程序,覆盖任务创建步骤、全部参数含义、底层命令构建逻辑与典型配置示例。阅读完本文,你将能够独立配置一个可运行的 Java 任务节点,并理解其在 Worker 上的真实执行机制(javac 编译、classpa

gitblog_00216的博客 405

DolphinScheduler使用DataX简单抽取数据(MySQL)

dolphinscheduler使用DataX增量抽取数据

weixin_42890062的博客 2982

【DolphinScheduler】datax读取hive分区表时,空分区、分区无数据任务报错问题解决

【DolphinScheduler】datax读取hive分区表时,空分区、分区无数据任务报错问题解决。 最近在使用海豚调度DolphinScheduler的Datax组件时,遇到这么一个问题:之前给客户使用海豚做的离线数仓的分层搭建,一直都运行好好的,过了个元旦,这几天突然在数仓做任务时报错

Alex的博客 2505

Dolphinscheduler配置Datax抽取数据

需求是从mysql增量抽取数据到postgresql 练习了两种实现方式 第一种:使用海豚自带datax组件实现 第二种:在海豚里调用shell脚本实现,抽取配置写在shell脚本中 shell脚本配置内容如下: 下载地址:https://download.youkuaiyun.com/download/weixin_43025027/76460239 { “job”: { “content”: [ { “reader”: { “name”: “mysqlreader”, “parameter”: { “colum

weixin_43025027的博客 7148

dolphinscheduler 1.2.1 运行datax任务,重复同步数据库问题排查记录

稳定跑了一年的调度系统,突然包含datax节点的工作流集体报错,报错原因都是主键冲突,点进去查看,发现报错的节点大部分实际上是成功状态,但是状态为失败,而真正失败的节点报的都是主键冲突错。

3372

Datax问题记录

data异常

u013984781的博客 3463
上一篇: cas5.3统一登录前后端分离改造方案(源码)
下一篇: Dolphinscheduler配置dataX离线采集任务写入hive实践(二)
hamish-wu
博客等级 码龄15年 2814粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值