zoukankan      html  css  js  c++  java
  • [Sqoop]-导入导出

    1.概述

      Sqoop的导入导出,是Sqoop的核心功能.导入导出,是针对Hadoop而言.所以

        Sqoop导入 : RDBMS数据导入到Hadoop

        Sqoop导出: Hadoop数据导出到RDBMS中

      Sqoop导入时,会

    2.导入  

      2.1 导入到HDFS

    sqoop import /
    --connect <jdbc-uri> /
    --username <username> /
    --password <password> /
    -m setMapNum 
    --mapreduce-job-name jobNameForUI 
    --target-dir HDFS_DIR 
    --fields-terminated-by '	' 
    --null-string '' --null-non-string '0' 
    --query "RDBMS_SQL AND $CONDITIONS" 
    --split-by 'MapSplitWithColumn'
    --delete-target-dir 

        delete-target-dir 谨慎使用,务必确认是可以删除HDFS的目标文件的,防止误删除

        split-by 是Sqoop的分片算法列.Sqoop的数据分片是分别查询目标列的最大值和最小值,再根据这个最大值和最小值区间,根据设定的Map数量进行分片的.所以这个字段多非数字类型字段支持非常不好.最好选用数字的连续的列作为分片列

     

      2.2 导入到Hive

    sqoop import 
    --connect jdbc:mysql://localhost:3306/sqoop 
    --username root 
    --password root 
    -m 2 
    --table emp 
    --null-string '' --null-non-string '0' 
    --mapreduce-job-name jobNameForUI 
    --fields-terminated-by '	' 
    --hive-database test 
    --hive-table emp_partition 
    --hive-import 
    --hive-partition-key 'pt' 
    --hive-partition-value '2018-08-08' 
    --hive-overwrite 
    --delete-target-dir 

        --create-hive-table  导入到Hive不建议使用自动创建Hive表,最好是自行在Hive创建表和列.因为自动创建的表的字段类型,是依据导入数据推断出来的.如果有浮点数等情况,特别容易发生精度丢失.

    3.导出

      3.1 HDFS导出到MySQL

    sqoop export 
    --connect jdbc:mysql://localhost:3306/sqoop 
    --username root 
    --password root 
    -m 2 
    --mapreduce-job-name FromHDFSToMySQL 
    --table emp_demo 
    --export-dir /user/hadoop/emp
  • 相关阅读:
    ubuntu15.04下安装配置docker
    在Vmware/VirtualBox虚拟机环境中正确打开虚拟机
    windows下使用cx_freeze将Python程序打包成exe可执行文件
    Python正则表达式学习小结
    Ubuntu环境下利用Python3+PyQt5+Eric6进行GUI编程
    C#学习笔记——控件篇
    商务英语学习第一课(lending(借贷))
    Ajax的请求方式:get和post
    XML就像是扩展应用范围的HTML
    JQ数组=jQuery对象数组
  • 原文地址:https://www.cnblogs.com/NightPxy/p/9163297.html
Copyright © 2011-2022 走看看