美文网首页
尚硅谷大数据技术之Sqoop

尚硅谷大数据技术之Sqoop

作者: 尚硅谷教育 | 来源:发表于2018-12-17 14:20 被阅读3次

    5.2.7 命令&参数:codegen
    将关系型数据库中的表映射为一个Java类,在该类中有各列对应的各个字段。
    如:
    $ bin/sqoop codegen
    --connect jdbc:mysql://hadoop102:3306/company
    --username root
    --password 000000
    --table staff
    --bindir /home/admin/Desktop/staff
    --class-name Staff
    --fields-terminated-by "\t"

    序号 参数 说明
    1 --bindir <dir> 指定生成的Java文件、编译成的class文件及将生成文件打包为jar的文件输出路径
    2 --class-name <name> 设定生成的Java文件指定的名称
    3 --outdir <dir> 生成Java文件存放的路径
    4 --package-name <name> 包名,如com.z,就会生成com和z两级目录
    5 --input-null-non-string <null-str> 在生成的Java文件中,可以将null字符串或者不存在的字符串设置为想要设定的值(例如空字符串)
    6 --input-null-string <null-str> 将null字符串替换成想要替换的值(一般与5同时使用)
    7 --map-column-java <arg> 数据库字段在生成的Java文件中会映射成各种属性,且默认的数据类型与数据库类型保持对应关系。该参数可以改变默认类型,例如:--map-column-java id=long, name=String
    8 --null-non-string <null-str> 在生成Java文件时,可以将不存在或者null的字符串设置为其他值
    9 --null-string <null-str> 在生成Java文件时,将null字符串设置为其他值(一般与8同时使用)
    10 --table <table-name> 对应关系数据库中的表名,生成的Java文件中的各个属性与该表的各个字段一一对应
    5.2.8 命令&参数:create-hive-table
    生成与关系数据库表结构对应的hive表结构。
    命令:
    如:
    bin/sqoop create-hive-table \ --connect jdbc:mysql://hadoop102:3306/company \ --username root \ --password 000000 \ --table staff \ --hive-table hive_staff 参数: 序号 参数 说明 1 --hive-home <dir> Hive的安装目录,可以通过该参数覆盖掉默认的Hive目录 2 --hive-overwrite 覆盖掉在Hive表中已经存在的数据 3 --create-hive-table 默认是false,如果目标表已经存在了,那么创建任务会失败 4 --hive-table 后面接要创建的hive表 5 --table 指定关系数据库的表名 5.2.9 命令&参数:eval 可以快速的使用SQL语句对关系型数据库进行操作,经常用于在import数据之前,了解一下SQL语句是否正确,数据是否正常,并可以将结果显示在控制台。 命令: 如: bin/sqoop eval
    --connect jdbc:mysql://hadoop102:3306/company
    --username root
    --password 000000
    --query "SELECT * FROM staff"
    参数:
    序号 参数 说明
    1 --query或--e 后跟查询的SQL语句

    5.2.10 命令&参数:import-all-tables
    可以将RDBMS中的所有表导入到HDFS中,每一个表都对应一个HDFS目录
    命令:
    如:
    $ bin/sqoop import-all-tables
    --connect jdbc:mysql://hadoop102:3306/company
    --username root
    --password 000000
    --warehouse-dir /all_tables

    参数:
    序号 参数 说明
    1 --as-avrodatafile 这些参数的含义均和import对应的含义一致
    2 --as-sequencefile
    3 --as-textfile
    4 --direct
    5 --direct-split-size <n>
    6 --inline-lob-limit <n>
    7 --m或—num-mappers <n>
    8 --warehouse-dir <dir>
    9 -z或--compress
    10 --compression-codec

    5.2.11 命令&参数:job
    用来生成一个sqoop任务,生成后不会立即执行,需要手动执行。
    命令:
    如:
    bin/sqoop job \ --create myjob -- import-all-tables \ --connect jdbc:mysql://hadoop102:3306/company \ --username root \ --password 000000 bin/sqoop job
    --list
    $ bin/sqoop job
    --exec myjob
    尖叫提示:注意import-all-tables和它左边的--之间有一个空格
    尖叫提示:如果需要连接metastore,则--meta-connect jdbc:hsqldb:hsql://linux01:16000/sqoop
    参数:
    序号 参数 说明
    1 --create <job-id> 创建job参数
    2 --delete <job-id> 删除一个job
    3 --exec <job-id> 执行一个job
    4 --help 显示job帮助
    5 --list 显示job列表
    6 --meta-connect <jdbc-uri> 用来连接metastore服务
    7 --show <job-id> 显示一个job的信息
    8 --verbose 打印命令运行时的详细信息
    尖叫提示:在执行一个job时,如果需要手动输入数据库密码,可以做如下优化
    <property>
    <name>sqoop.metastore.client.record.password</name>
    <value>true</value>
    <description>If true, allow saved passwords in the metastore.</description>
    </property>

    5.2.12 命令&参数:list-databases
    命令:
    如:
    $ bin/sqoop list-databases
    --connect jdbc:mysql://hadoop102:3306/
    --username root
    --password 000000

    参数:与公用参数一样
    5.2.13 命令&参数:list-tables
    命令:
    如:
    $ bin/sqoop list-tables
    --connect jdbc:mysql://hadoop102:3306/company
    --username root
    --password 000000
    参数:与公用参数一样

    本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。

    相关文章

      网友评论

          本文标题:尚硅谷大数据技术之Sqoop

          本文链接:https://www.haomeiwen.com/subject/ycaqkqtx.html