zoukankan      html  css  js  c++  java
  • sqoop参数详解

    从RDBMS到HIVE:

    sqoop import 
    --connect
    jdbc:oracle:thin:@//192.168.156.111/test--username test --password test --query select * from it.t_test where inserttime >= to_date('${date1}','yyyy-mm-dd') and inserttime < to_date('${date2}','yyyy-mm-dd') and $CONDITIONS --hive-overwrite --hive-table it.test --target-dir hdfs://ns1/user/hive/warehouse/it.db/t_test --null-string \N -null-non-string \N --fields-terminated-by 001 --delete-target-dir --split-by emp_no -m 1

    参数详解:

      --connect 关系型数据库连接

      --username 关系型数据库连接用户名

      --password 关系型数据库连接密码

      --table 关系型数据库表

      --query 自定义sql查询,sql结束要加$CONDITIONS

      --hive-overwrite 覆盖之前的分区写入数据

      --hive-drop-import-delims 导入hive的数据某列中如果有换行符或者回车键可以删除

      --hive-table hive的表

      --hive-database hive的数据库

      --hive-partition-key hive的分区字段

      --hive-partition-value hive的分区值

      --fields-terminated-by 导入到hdfs时,hdfs文件的分隔符

      --input-fields-terminated-by 从hdfs导出时,hdfs文件的分隔符

      --export-dir 从hdfs导出时的源目录

      --target-dir 导入到hdfs时的目标目录

      --delete-target-dir 如果hdfs的目录已经存在,则先删除

      --direct 快速模式,使用mysql自带的mysqldump导出数据

      --split-by 如果-m参数不为1,一定要加上该参数而且最好是数值类型,否则会报错

      -m 指定map的数量,也是生成文件的数量

      --split-by 一般和参数-m放在一起使用,-m表示使用几个map并发执行,--split-by表示拆分数据的字段。

      例如:-m设置为2,数据有100条,sqoop会首先获取拆分字段的最大值和最小值,间隔为100/2=50,那么第一个map执行拆分字段为(1,50)之间的数据,第二个map执行拆分字段为(50,100)之间的数据

      NOTES:

        拆分字段默认为主键;

        拆分字段数据类型最好为int,如果为其他类型,将-m参数设置为1,--split-by不设置;

        拆分字段的值最好均匀分布,否则会造成数据倾斜的问题。

      

      HCatalog配置:

      --create-hcatalog-table 指定需要创建表,如果不指定,默认不创建,若指定且创建的表已经存在就会报错

      --hcatalog-table 要导出的目标表

      --hcatalog-storage-stanza 指定存储格式,该参数值会拼接到create table的命令中。默认:stored as rcfile。

      --hcatalog-partition-keys 指定分区字段,多个字段用逗号分隔开(hive-partition-key的加强版)

      --hcatalog-partition-values 指定分区值,多分区值用逗号分隔开(hive-partition-value的加强版)

      

  • 相关阅读:
    面试题整理
    Node.js核心模块-stream流
    Node.js核心模块-crypto加密
    Node.js核心模块-assert
    Node.js全局对象-process
    nodemon
    随笔
    python学习笔记(十四): unittest
    python学习笔记(十三): 多线程多进程
    python学习笔记(十二):发送邮件
  • 原文地址:https://www.cnblogs.com/zbw1112/p/12083895.html
Copyright © 2011-2022 走看看