• [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
  • 相关阅读:
    静态库介绍与简单演练及同名资源冲突解决(.a格式的静态库)
    获取在线APP的素材图片
    屏幕适配-预览工具的使用
    Mac本“安全性与隐私”里没有“任何来源”选项
    SVN(Cornerstone)-添加忽略文件
    应用间跳转
    清花瓷抓包手机配置
    生成iOSAPP的二维码
    iOS上架90034问题解决
    正则表达式
  • 原文地址:https://www.cnblogs.com/NightPxy/p/9163297.html
Copyright © 2020-2023  润新知