• Sqoop笔记 -- 导入导出


    测试Sqoop 是否可以连接数据库

    sqoop list-databases  
    --connect jdbc:mysql://hadoop2:3306/   
    --username root  
    --password 123456
    

    MySQL导入到HDFS上

    全部导入

    sqoop import 
    --connect jdbc:mysql://hadoop2:3306/test 
    --username root 
    --password 123456 
    --table staff 
    --target-dir /sqoop/ 
    --delete-target-dir 
    --num-mappers 1 
    --fields-terminated-by "	"
    

    delete-target-dir 删除存在的目录

    查询导入

    sqoop import 
    --connect jdbc:mysql://hadoop2:3306/test 
    --username root 
    --password 123456 
    --target-dir /sqoop 
    --delete-target-dir 
    --num-mappers 1 
    --fields-terminated-by "	" 
    --query 'select name,sex from staff where id <=1 and $CONDITIONS;'
    

    导入指定的列

    sqoop import 
    --connect jdbc:mysql://hadoop2:3306/test 
    --username root 
    --password 123456 
    --target-dir /sqoop 
    --delete-target-dir 
    --num-mappers 1 
    --fields-terminated-by "	" 
    --columns id,sex 
    --table staff
    

    使用sqoop关键字筛选查询导入数据

    sqoop import 
    --connect jdbc:mysql://hadoop2:3306/test 
    --username root 
    --password 123456 
    --target-dir /sqoop/a 
    --delete-target-dir 
    --num-mappers 1 
    --fields-terminated-by "	" 
    --table staff 
    --where "id=1"
    

    RDBMS到Hive

    如果Hive中没有对应的表,则自动创建

    sqoop import 
    --connect jdbc:mysql://hadoop2:3306/test 
    --username root 
    --password 123456 
    --table staff 
    --num-mappers 1 
    --hive-import 
    --fields-terminated-by "	" 
    --hive-overwrite 
    --hive-table staff_hive
    

    RDBMS到HBase

    需要手动创建HBase表,hbase> create 'hbase_company','info'

    sqoop import 
    --connect jdbc:mysql://hadoop2:3306/test 
    --username root 
    --password 123456 
    --table staff 
    --columns "id,name,sex" 
    --hbase-create-table 
    --hbase-table "hbase_company" 
    --column-family "info" 
    --hbase-row-key "id" 
    --num-mappers 1 
    --split-by id
    

    HIVE/HDFS到RDBMS

    MySQL中如果表不存在,不会自动创建

    sqoop export 
    --connect jdbc:mysql://hadoop2:3306/test 
    --username root 
    --password 123456 
    --table staff_copy1 
    --num-mappers 1 
    --export-dir /user/hive/warehouse/staff_hive 
    --input-fields-terminated-by "	"
    

    执行脚本

    使用opt格式的文件打包sqoop命令,然后执行

    创建一个.opt文件

    mkdir opt
    touch opt/job_HDFS2RDBMS.opt
    

    编写Sqoop脚本

    export
    --connect
    jdbc:mysql://hadoop2:3306/test
    --username
    root
    --password
    123456
    --table
    staff_copy2
    --num-mappers
    1
    --export-dir
    /user/hive/warehouse/staff_hive
    --input-fields-terminated-by
    "	"
    

    执行脚本

    bin/sqoop --options-file opt/job_HDFS2RDBMS.opt
    
  • 相关阅读:
    学习:大文件统计与排序
    共享库SidebySide之Windows Shared Assembly
    Bundle是个好东西
    所谓的代码段、数据段
    [design decision] common case vs. rare case
    如何给C++设计一个GC
    玩一把tesseract
    [design decision]让工具依赖于naming convention是个拙劣的做法
    监控域名可用性并自动发信
    调试lua代码
  • 原文地址:https://www.cnblogs.com/junzifeng/p/11830857.html
Copyright © 2020-2023  润新知