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
    
  • 相关阅读:
    浅谈Android系统开发中LOG的使用
    在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务
    美国地名大全(美国城市名称英文、中文)
    简单工厂模式
    Union和Union All的差别
    strlen和sizeof的差别
    css+div网页设计(一)--基础知识
    Java程序猿面试题集(181- 199)
    【Android XMPP】 学习资料收集贴(持续更新)
    curl命令具体解释
  • 原文地址:https://www.cnblogs.com/junzifeng/p/11830857.html
Copyright © 2011-2022 走看看