zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    生成word附件和word域动态赋值
    查询结果用Object类或其数组的List接收
    mustache多次渲染和多个赋值
    规范必备:枚举类型
    使用HttpClient发送请求、接收响应
    java接口对接——别人调用我们接口获取数据
    java接口对接——调用别人接口推送数据
    mustache语法
    Confluence 6 空间标识
    Confluence 6 从一个模板中创建一个空间
  • 原文地址:https://www.cnblogs.com/junzifeng/p/11830857.html
Copyright © 2011-2022 走看看