当前位置: 首页 > article >正文

DataX

一、DataX 介绍
DataX 是阿里巴巴开发的一个开源数据同步工具。
DataX :更加专注于批量数据的同步和迁移,适用于数据仓库建设、数据备份和数据迁移等场景。主要支持批处理模式,通过配置 JSON 文件来定义数据同步任务。不依赖于其他大数据计算框架。

二、DataX 使用

  1. 安装 DataX
    首先,需要安装 DataX。可以从 GitHub 上下载 DataX 源码或预编译的二进制包:

git clone https://github.com/alibaba/DataX.git
进入 DataX 目录并编译:

cd DataX
mvn clean package assembly:assembly -Dmaven.test.skip=true

  1. 配置 JSON 文件
    DataX 使用 JSON 文件来配置数据同步任务。以 MySQL 到 Hadoop 的数据同步为例,首先需要创建一个 JSON 配置文件,例如 mysql_to_hadoop.json。
    以下是一个简单的配置示例:
{
  "job": {
    "setting": {
      "speed": {
        "channel": 3  // 并行度,可以根据需要调整
      }
    },
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "your_mysql_username",
            "password": "your_mysql_password",
            "connection": [
              {
                "table": ["your_table_name"],
                "jdbcUrl": ["jdbc:mysql://your_mysql_host:3306/your_database"]
              }
            ]
          }
        },
        "writer": {
          "name": "hdfswriter",
          "parameter": {
            "defaultFS": "hdfs://your_hadoop_cluster",
            "fileType": "text",
            "path": "/user/hadoop/your_hdfs_path/",
            "fileName": "your_file_name",
            "column": [
              {"name": "column1", "type": "string"},
              {"name": "column2", "type": "int"},
              {"name": "column3", "type": "date"}
            ],
            "writeMode":"truncate",
            "fieldDelimiter": "\t"
          }
        }
      }
    ]
  }
}
  1. 配置项说明
    reader 部分:配置 MySQL 数据源的连接信息,包括用户名、密码、表名和 JDBC URL。
    writer 部分:配置 Hadoop HDFS 的目标路径、文件类型(如 text、orc、parquet 等)、文件名、字段信息及写入模式。
    setting:任务的全局设置。
    在 DataX 的 hdfswriter 配置中,writeMode 参数用于指定写入数据到目标 HDFS 时的模式
    append:追加模式。如果目标路径下已经存在文件,将在文件末尾追加新数据,而不会覆盖原有数据。
    nonConflict:非冲突模式。如果目标路径下已经存在文件,任务会报错并终止,以避免覆盖现有文件。
    truncate:截断模式。如果目标路径下已经存在文件,将删除现有文件,然后写入新数据

http://www.kler.cn/news/368504.html

相关文章:

  • 【pytest中同一个用例多次执行生成一个测试报告的方法】
  • Java全栈经典面试题剖析8】JavaSE高级 -- 线程同步、 线程通信、死锁、线程池
  • Python图像处理——基于ResNet152的人脸识别签到系统(Pytorch框架)
  • python对文件的读写操作
  • 安徽对口高考Python试题选:输入一个正整数,然后输出该整数的3的幂数相加形式。
  • 【利用Seaborn进行高级数据可视化】创建美观且信息丰富的图表!
  • Oracle 权限相关的概念
  • Chromium HTML5 新的 Input 类型email对应c++
  • pikachu靶场-Cross-Site Scripting(XSS)
  • node学习笔记
  • Python 函数返回值之None类型
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.C++11(1)
  • 控制Arduino的利器-Windows Remote Arduino
  • 基于SpringCloud的WMS管理系统源码
  • 如何搭建一部引人入胜的短剧小程序
  • 代码随想录算法训练营第二十五天|Day25 回溯算法
  • 关于AI网络架构的文章
  • Leetcode4:寻找两个正数数组中的中位数
  • 问:MySQL中的常用SQL函数整理?
  • MySQL全文索引检索中文
  • python pytz怎么安装
  • 华为配置 之 STP
  • 从图像识别到聊天机器人:Facebook AI的多领域应用
  • stm32单片机基于rt-thread 的 littlefs 文件系统 的使用
  • 使用Python Pillow库生成九宫格图片
  • ICP之点云特征计算