首页 > 其他分享 >datax 从 hive 同步数据配置

datax 从 hive 同步数据配置

时间:2024-05-30 14:48:22浏览次数:15  
标签:hdfs 同步 必选 pay hive datax 默认值 stage

DataX HiveReader


1 快速介绍

Hivereader插件:从Hive表读取数据

2 实现原理

实现方式是:根据配置的QuerySql,通过将查询结果保存到一张新的临时hive表中这种方式;然后获取临时表的hdfs文件地址,然后读取文件到缓冲区,最后删除临时的表。

3 功能说明

Hivereader插件:从Hive表读取数据

  • 使用QuerySql方式取Hive表数据
    • 即可取整个数据,也可取部分数据
    • 支持取选取指定列或分区列
    • 支持同时取多个分区的数据
    • HdfsReader只能取整个表或整个分区的所有数据
  • 支持读取任何格式与压缩的Hive的源表;

3.1 配置样例

job.json

{
  "job": {
    "setting": {
      "speed": {
        "channel":1
      }
    },
    "content": [
      {
        "reader": {
          "name": "hivereader",
          "parameter": {
              "hiveSql": [
                    "select username,telephone,mail from mysql_to_hive;"
               ],
              "defaultFS": "hdfs://xxx:port"
           }
        },
        "writer": {
          ......
        }
        }
    ]
  }

}

3.2 参数说明

  • hiveSql

    • 描述:Hive上的查询语句QuerySql
    • 必选:是
    • 默认值:无
  • defaultFS

    • 描述:Hadoop hdfs文件系统namenode节点地址。示例:hdfs://xxxxxxxxxx:8020
    • 必选:是
    • 默认值:无
  • tempDatabase

    • 描述:hive临时表存放的database(需写权限); 建议根据实际场景设置
    • 必选:否
    • 默认值:default
  • tempDatabasePath

    • 描述:hive临时表所在数据库的hdfs路径(需写权限);建议根据实际场景设置
    • 必选:否
    • 默认值:/user/hive/warehouse/
  • fieldDelimiter

    • 描述:字段分隔符,hive临时表使用,建议不设置
    • 必选:否
    • 默认值:\\u0001(json里面需要写成'\u0001'),可选示例'\\t' , ',' 等;注意,这与HdfsReader不一样
  • nullFormat

    • 描述:文本文件中无法使用标准字符串定义null(空指针),nullFormat可定义哪些字符串可以表示为null。

      例如如果用户配置: nullFormat:"\\N",那么如果源头数据是"\N",DataX视作null字段。

    • 必选:否

    • 默认值:\\N

  • hive_sql_set

    • 描述:hive临时表执行的前置hive set语句;示例,设置队列set tez.queue.name=root.xxxxxxx;
    • 必选:否
    • 默认值:空
  • haveKerberos

    • 描述:是否进行Kerberos认证(true/false)
    • 必选:否
    • 默认值:空
  • kerberosKeytabFilePath

    • 描述:Kerberos认证 keytab文件路径,绝对路径,如/etc/security/keytabs/xxxx_user.keytab
    • 必选:否
    • 默认值:空
  • kerberosPrincipal

    • 描述:Kerberos认证Principal名,如xxxx/[email protected]
    • 必选:否
    • 默认值:空
  • hadoopConfig

    • 描述:hadoopConfig里可以配置与Hadoop相关的一些高级参数,比如HA的配置。
    • 必选:否
    • 默认值:空

3.3 环境准备

  • 执行datax任务的机器要按照hive,并且配置好环境变量
  • tempDatabase和tempDatabase需要有“写”权限

4 性能报告

4.1 环境准备

4.1.3 测试环境

已在以下测试环境测试通过:

  • 测试环境1

    CDH 5.7.0 (hive 1.1.1 , hadoop 2.7.1)

  • 测试环境2

    HDP 3.1.4 (hive 3.1.0 , hadoop 3.1.1 )

4.2 测试报告

  • 场景一

    json只传必选参数,其他为默认参数值

    {
      "job": {
        "setting": {
          "speed": {
            "channel":1
          }
        },
        "content": [
          {
            "reader": {
              "name": "hivereader",
              "parameter": {
                  "hiveSql": [
    "select id,pay_decimal,pay_str,pay_double from stage.stage_md_test limit 10;"
                   ],
                  "defaultFS": "hdfs://quickstart.cloudera:8020"
               }
            },
    "writer":{"name": "streamwriter",
              "parameter": {
                "encoding": "UTF-8",
                "print": true
             
                        }
                    }
            }
        ]
      }
    
    }
    
  • 场景二

​ json传了默认的参数,加部分可选参数(临时表database与hdfs路径)

{
  "job": {
    "setting": {
      "speed": {
        "channel":1
      }
    },
    "content": [
      {
        "reader": {
          "name": "hivereader",
          "parameter": {
              "hiveSql": [
                    "select id,pay_decimal,pay_str,pay_double from stage.stage_md_test limit 10;"
               ],
              "defaultFS": "hdfs://quickstart.cloudera:8020",
			  "tempDatabase":"stage",
			  "tempDatabasePath":"/user/hive/warehouse/stage.db/"

           }
        },
"writer":{"name": "streamwriter",
          "parameter": {
            "encoding": "UTF-8",
            "print": true
         
                    }
                }
        }
    ]
  }

}
  • 场景三

    json传入所有的可选参数,注意fieldDelimiter传入的'\001'需要写成'\\u0001'

    {
      "job": {
        "setting": {
          "speed": {
            "channel":1
          }
        },
        "content": [
          {
            "reader": {
              "name": "hivereader",
              "parameter": {
                  "hiveSql": [
                        "select id,pay_decimal,pay_str,pay_double from stage.stage_md_test limit 10;"
                   ],
                  "defaultFS": "hdfs://quickstart.cloudera:8020",
    			  "tempDatabase":"stage",
    			  "tempDatabasePath":"/user/hive/warehouse/stage.db/",
    			  "fieldDelimiter":"\\u0001",
                  "nullFormat":"\\N",
                  "haveKerberos":"true",
                  "kerberosKeytabFilePath":"/etc/security/keytabs/xxxx_user.keytab",
                  "kerberosPrincipal":"xxxx_user@HADOOP_CLUSTER_XXXXX.COM",
                  "hadoopConfig":{
                   "dfs.nameservices": "hadoop_cluster",
                   "dfs.ha.namenodes.hadoop_cluster": "nn1,nn2",
                   "dfs.namenode.rpc-address.hadoop_cluster.nn1": "IPXXXXXXX01:8020",
                   "dfs.namenode.rpc-address.hadoop_cluster.nn2": "IPXXXXXXX02:8020",
                   "dfs.client.failover.proxy.provider.hadoop_cluster": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"},
               }
            },
    "writer":{"name": "streamwriter",
              "parameter": {
                "encoding": "UTF-8",
                "print": true
             
                        }
                    }
            }
        ]
      }
    
    }
    

标签:hdfs,同步,必选,pay,hive,datax,默认值,stage
From: https://www.cnblogs.com/kingron/p/18222277

相关文章

  • 京准科技:DCS系统时钟同步(NTP时间服务器)技术应用方案
    京准科技:DCS系统时钟同步(NTP时间服务器)技术应用方案京准科技:DCS系统时钟同步(NTP时间服务器)技术应用方案京准电子官微——ahjzsz前言   随着计算机和网络通信技术的飞速发展,各行业自动化系统数字化、网络化的时代已经到来。这一方面为各控制和信息系统之间的数据交换、分析......
  • Hive中常用query--关联/聚合/去重/排序举例
    在Hive中,可以使用各种查询来执行关联(JOINs)、聚合(Aggregations)、去重(Distinct)和排序(Sorting)操作。以下是一些常见的查询示例:关联(JOIN):在Hive中执行关联操作通常是为了将两个或多个表中相关的行连接起来。SELECTe.name,e.salary,d.department_nameFROMemployeeseJOIN......
  • 黑马es数据同步mq解决方案
    方式一:同步调用        优点:实现简单,粗暴        缺点:业务耦合度高方式二:异步通知        优点:低耦含,实现难度一般        缺点:依赖mq的可靠性方式三:监听binlog        优点:完全解除服务间耦合        缺点:......
  • C++ 线程同步condition_variable的使用
    一,condition_variable使用步骤创建一个scondition_variable对象。创建一个互斥量对象mutex。创建两个线程:等待线程和唤醒线程。在等待线程中,使用unique_lock锁定互斥量,并调用wait函数进入等待状态。在唤醒线程lock_guard锁定互斥量,并调用notify_one或notify_all函数唤醒等......
  • 【YashanDB知识库】kettle从DM8的number类型同步到YashanDB的varchar类型,存入是科学计
    【标题】kettle从DM8的number类型同步到YashanDB的varchar类型,存入是科学计数法形式的数据【问题分类】数据导入导出【关键字】数据同步,number类型,科学计数法【问题描述】客户查询不到准确数据,只看到科学计数法展示的字符串。number类型存入到Oracle(MySQL)的varchar类型是正常......
  • Hive复杂数据类型之 Struct结构体
    想写这篇文章蛮久了,但这个数据类型,确实很少用,翻遍了代码库的所有代码,也没有找到。但,之前分享过的 Hive复杂数据类型之array数组,Hive复杂数据类型之array数组_hive建表设置array类型-CSDN博客Hive复杂数据类型之map映射,hive复杂数据类型之map映射_hive复杂数据类型ma......
  • 同步、异步、阻塞、非阻塞、回调函数
    同步、异步、阻塞、非阻塞、回调函数一、同步、异步和回调函数1.概念程序在执行过程中会存在函数调用,区分同步和异步的关键点在于函数调用后主程序如何运行。同步:函数调用后,主程序等待着函数返回才会继续往下运行。异步:函数调用后,主程序不等待函数返回就继续往下运行。......
  • 使用prometheus监测MySQL主从同步状态方案
    说明:本文介绍如何使用prometheus、alertmanager监测MySQL主从,当从节点中断同步时,发送邮箱报警,并使用grafana将数据视图化。结构图如下:安装(1)安装应用首先,来安装prometheus、alertmanager和grafana,参考以下文章(都是我写的,嘿嘿):CentOS7安装prometheusCentOS7安装aler......
  • 进程间同步(互斥锁)
    【一】什么是互斥锁互斥锁是一种用于多线程编程中控制对共享资源访问的机制限制当前时间段只能由当前进程使用,当前进程使用完成后才能其他进程继续使用基本原理是在对共享资源进行访问前加锁,使得其他线程无法访问该资源,当访问完成后再解锁,使得其他线程可以进行访问【......
  • datax 抽取hive表到doris
    datax读取hive表有两种方式,一种是读取hdfs文件路径HDFSReader,因为hive是存储在hdfs上。第二种是读取hive表RDBMSReader。HDFSReader{"job":{"setting":{"speed":{"channel":3},"......