• [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
  • 相关阅读:
    笔记 : windows系统下 命令行 php --version 的版本与phpinfo()版本不一致问题
    笔记 : WampServe加装PHP版本(7.2.3)为例
    Browsersync结合gulp和nodemon实现express全栈自动刷新
    PHP与JSP简单比较
    BDD 与DSL 入门
    1.display:flex布局笔记
    Css预处理器---Less(三)
    python_30期_第2讲【字符串&运算符】
    python_30期_第5讲【while循环+for循环】
    class_05py作业
  • 原文地址:https://www.cnblogs.com/NightPxy/p/9163297.html
Copyright © 2020-2023  润新知