Centos安装Datax

Centos7安装DataX

    • 一、DataX简介
    • 二、DataX的数据源支持
    • 三、安装DataX
      • 1、下载DataX
      • 2、解压
      • 3、检验是否安装成功
      • 4、使用
    • 四、实践案例
      • 1、环境信息
      • 2、编写同步的配置文件(user_info.json)
      • 3、执行同步
      • 4、验证同步结果

一、DataX简介

        DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
源码地址点这里

二、DataX的数据源支持

        DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入,目前支持数据如下图:

类型数据源Reader(读)Writer(写)文档
RDBMS 关系型数据库MySQL读 、写
Oracle读 、写
OceanBase读 、写
SQLServer读 、写
PostgreSQL读 、写
DRDS读 、写
Kingbase读 、写
通用RDBMS(支持所有关系型数据库)读 、写
阿里云数仓数据存储ODPS读 、写
ADB
ADS
OSS读 、写
OCS
Hologres
AnalyticDB For PostgreSQL
阿里云中间件datahub读 、写
SLS读 、写
图数据库阿里云 GDB读 、写
Neo4j
NoSQL数据存储OTS读 、写
Hbase0.94读 、写
Hbase1.1读 、写
Phoenix4.x读 、写
Phoenix5.x读 、写
MongoDB读 、写
Cassandra读 、写
数仓数据存储StarRocks读 、写
ApacheDoris
ClickHouse读 、写
Databend
Hive读 、写
kudu
selectdb
无结构化数据存储TxtFile读 、写
FTP读 、写
HDFS读 、写
Elasticsearch
时间序列数据库OpenTSDB
TSDB读 、写
TDengine读 、写

三、安装DataX

1、下载DataX

在源码中可以下载到DataX安装包:datax.tar.gz。
在这里插入图片描述

2、解压

tar -zxvf datax.tar.gz

在这里插入图片描述

3、检验是否安装成功

# 如下路径更换为自己的路径
python /wz_program/datax/bin/datax.py /wz_program/datax/job/job.json

在这里插入图片描述
出现如下内容则说明已安装成功:
在这里插入图片描述

4、使用

        DataX使用只需要根据自己同步的数据的数据源与数据的目的地选择对应的Reader和Writer,将Reader和Writer信息配置到一个json文件中,然后执行同步命令即可完成数据同步。

四、实践案例

描述:将mysql数据库user_info表中的1500条数据同步到HDFS的/user_info中(HDFS需要提前安装好)。

1、环境信息

mysql信息如下:

CREATE TABLE `user_info` (`id` int NOT NULL AUTO_INCREMENT,`user_id` int NOT NULL,`username` varchar(255) NOT NULL,`email` varchar(255) NOT NULL,`phone_number` varchar(30) DEFAULT NULL,`status` enum('active','inactive') DEFAULT 'active',`score` int unsigned DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16280 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

在这里插入图片描述
HDFS信息如下:
在这里插入图片描述
特别注意:DataX向HDFS同步数据时,一定要保证目标路径已存在,否则会同步失败。
在这里插入图片描述

hadoop fs -mkdir /user_info

2、编写同步的配置文件(user_info.json)

{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"column": ["id","user_id","username","email","phone_number","status","score"],"where": "id>=3","connection": [{"jdbcUrl": ["jdbc:mysql://*************:3306/hadoop"],"table": ["user_info"]}],"password": "**********","splitPk": "","username": "root"}},"writer": {"name": "hdfswriter","parameter": {"column": [{"name": "id","type": "bigint"},{"name": "user_id","type": "bigint"},{"name": "username","type": "string"},{"name": "email","type": "string"},{"name": "phone_number","type": "string"},{"name": "status","type": "string"},{"name": "score","type": "string"}],"compress": "gzip","defaultFS": "hdfs://hadoop001:8020","fieldDelimiter": "\t","fileName": "user_info","fileType": "text","path": "/user_info","writeMode": "append"}}}],"setting": {"speed": {"channel": 1}}}
}

MySQLReader配置说明:

{"name": "mysqlreader",    #Reader的名称,固定写法,可以从官方文档中获取到(如上DataX的数据源支持中的表格)"parameter": {"column": [   #需要同步的字段,["*"]则表示所有列"id","user_id","username","email","phone_number","status","score"],"where": "id>=3",   #where过滤条件,可以过滤掉不需要同步的数据"connection": [{"jdbcUrl": ["jdbc:mysql://*************:3306/hadoop"   #需要同步的数据库url],"table": ["user_info"     #需要同步的数据库表名]}],"password": "**********",   #数据库密码"splitPk": "",     #分片字段,如果不指定则只会有单个Task"username": "root"  #数据库用户名}
}

HDFSWriter的配置说明:

{"name": "hdfswriter",  #Writer的名称,固定写法,可以从官方文档中获取到(如上DataX的数据源支持中的表格)"parameter": {"column": [  #列信息,包括列明和类型的设置{"name": "id","type": "bigint"},{"name": "user_id","type": "bigint"},{"name": "username","type": "string"},{"name": "email","type": "string"},{"name": "phone_number","type": "string"},{"name": "status","type": "string"},{"name": "score","type": "string"}],"compress": "gzip",   #HDFS压缩类型,text文件支持gzip和bzip2;orc文件支持NONE和SNAPPY"defaultFS": "hdfs://hadoop001:8020",   #HDFS文件系统namenode节点地址"fieldDelimiter": "\t",   #同步到HDFS文件字段的分隔符"fileName": "user_info",   #HDFS文件名前缀,如下图所示"fileType": "text",  #HDFS文件类型,目前支持text和orc"path": "/user_info",  #HDFS文件系统目标路径"writeMode": "append"  #数据写入模式(append:追加;nonConflict:若写入目录有同名文件【前缀相同】,则会报错)}
}

在这里插入图片描述

3、执行同步

python /wz_program/datax/bin/datax.py /wz_program/datax/job/user_info.json

在这里插入图片描述

4、验证同步结果

进入hdfs查询同步后的文件,前缀即为我们配置的名称,下载该文件查询同步的结果:
在这里插入图片描述

同步结果如下:
在这里插入图片描述

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

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

相关文章

使用WAF防御之网络上的隐蔽威胁(XSS攻击)

跨站脚本攻击(XSS)是一种常见且危险的威胁。它允许攻击者在用户浏览器上执行恶意脚本,窃取信息、篡改网页内容,甚至劫持用户会话。 什么是XSS攻击 定义:XSS攻击是一种代码注入技术,攻击者通过在目标网站上…

大模型推理优化实践:KV cache 复用与投机采样

作者:米基 一、背景 RTP-LLM 是阿里巴巴大模型预测团队开发的大模型推理加速引擎,作为一个高性能的大模型推理解决方案,它已被广泛应用于阿里内部。该引擎与当前广泛使用的多种主流模型兼容,并通过采用高性能的 CUDA 算子来实现了…

构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的Nginx1.24.0的RPM包

本文适用:rhel8系列,或同类系统(CentOS8,AlmaLinux8,RockyLinux8等) 文档形成时期:2022-2023年 因系统版本不同,构建部署应略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人…

几种常见的python开发工具对比

​ Python是一种功能强大且易于学习的编程语言,被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛,越来越多的Python开发工具也涌现出来。但是,对于新手来说,选择一款合适的Python开发工具可…

服务器部署项目,访问验证码出现Handler dispatch failed....InvocationTargeException

场景: 部署ruoyi-vue的jar。访问验证码接口时,出现异常。本地测试没有问题,起初使用的jdk8,怀疑jdk版本问题,但是本地使用11.0.15版本也没问题,后面也就没管,初步排除jdk版本的问题。之前项目也…

【pwn】cmcc_simplerop --rop链的构造

程序保护情况检查 32位程序,堆栈不可执行 主函数: 左边又是一堆函数,file看一下 发现是静态链接,那ret2libc不用考虑了,接着看一下有没有int 80 那可以考虑利用rop链调用execve函数,用系统调用的函数参数是…

电脑文件夹该怎么加密?文件夹加密方法大盘点

文件夹加密可以有效的避免数据泄露,提高文件夹的安全性。那么,电脑文件夹该怎么加密呢?下面我们就一起来盘点一下文件夹加密的方法。 文件夹加密超级大师 从名字上我们就可以知道,文件夹加密超级大师是一款专业的文件夹加密软件&…

Android音视频: 引入FFmpeg

本文你可以了解到 本文将介绍如何将上一篇文章编译出来的 FFmpeg so 库,引入到 Android 工程中,并验证 so 是否可以正常使用。 一、开启 Android 原生 C/C 支持 在过去,通常使用 makefile 的方式在项目中引入 C/C 代码支持,随…

深度学习进行数据处理(划分测试集和训练集)

自己进行在深度学习时对数据的处理,希望可以帮助大家 文章目录 前言 一、观察数据格式 二、划分训练集和测试集 总结 前言 在进行图像分类时我们经常得到的数据集各种各样,接下来我教大家如划分测试集和训练集. 一、观察数据格式 我们一般获得的数据在一个文件夹里,文件夹…

【椒盐玉兔】GPTs Store 商店的TOP100 自定义GPT使用报告

详细的图文报告有100张图,因为太长就放网盘链接 链接:百度网盘 请输入提取码 提取码:ub2n 解压密码:heehel 更多作品:长期更新国内外,中英文AI人工智能作品 整理获取 通过算法,筛选出了目前访…

水汽稳定度修正函数\Psi_q对潜热通量影响--模式验证工作

我之前提出了一个水汽通量廓线关系,这项工作偏理论,如果对下面说的背景不了解的话可以看下 https://agupubs.onlinelibrary.wiley.com/share/YNSG74MV8B8BAAUMCHN3?target10.1029/2022JD036708 那会没把提出的水汽稳定度修正函数加到CAS-ESM,当时对CAS-…

Unity游戏开发面试知识点全解读

Unity游戏开发面试知识点全解读 在数字化世界中,Unity游戏开发不仅是一种艺术形式和商业活动,而且已成为推动整个数字娱乐产业创新和进步的重要力量。Unity以其易用性、高效性和灵活性,赢得了全球开发者的青睐,从独立开发者到大型…