使用sqoop实现关系型数据库、HDFS、Hive之间数据的导入导出

xiaoxiao2021-02-28  114

sqoop概述:sqoop为大数据协作框架之一,以hdfs为核心,实现hdfs与关系型数据库之间的导入导出。

以下操作均建立在已配置好Hadoop、sqoop、hive、mysql等环境,已创建好相应表的基础上

1.mysql->hdfs

sqoop import \ --connect jdbc:mysql://主机名:端口号/db_name\ --username root \ --password 123456 \ --table table_name \ --num-mappers 1 \ --target-dir /sqoop \ --delete-target-dir \ --direct \ --fields-terminated-by '\t' 参数解释: num-mappers 指定map的个数 target-dir 指定目标路径 delete-target-dir 提前删除指定目录 fields-terminated-by '\t' 指定分隔符

增量导入

append 追加增量 sqoop import \ --connect jdbc:mysql://主机名:端口号/db_name\ --username root \ --password 123456 \ --table table_name \ --num-mappers 1 \ --target-dir /sqoop \ --direct \ --fields-terminated-by '\t' \ --check-column id \ --incremental append \ --last-value 1

2.hdfs->mysql

sqoop export \ --connect jdbc:mysql://主机名:端口号/db_name\ --username root \ --password 123456 \ --table table_name\ --num-mappers 1 \ --export-dir /hdfs_mysql \ --input-fields-terminated-by '\t' 参数解释: num-mappers 指定map的个数 export-dir 指定hdfs路径 input-fields-terminated-by '\t' 指定分隔符

3.mysql->hive

sqoop import \ --connect jdbc:mysql://主机名:端口号/db_name\ --username root \ --password 123456 \ --table table_name \ --num-mappers 1 \ --hive-import \ --delete-target-dir \ --hive-database hive数据库名\ --hive-table hive中对应的table_name \ --direct \ --fields-terminated-by '\t' 参数解释: num-mappers 指定map的个数 delete-target-dir 提前删除指定目录 hive-database hive数据库名 hive-table hive数据库中表名 fields-terminated-by '\t' 指定分隔符

4.hive->mysql

sqoop export \ --connect jdbc:mysql://主机名:端口号/db_name\ --username root \ --password 123456 \ --table table_name \ --num-mappers 1 \ --export-dir /user/hive/warehouse/数据库名/表名 \ --input-fields-terminated-by '\t' 参数解释: num-mappers 指定map的个数 export-dir 指定hive数据库对应的hdfs路径 input-fields-terminated-by '\t' 指定分隔符

5.hdfs->Oracle

sqoop export \ --connect jdbc:oracle:thin:@主机名:端口号:ora11g \ --username root\ --password 123456 \ --table LIVE_VIEWER_SHIP \ --num-mappers 1 \ --export-dir /user/cxfgs/c3/output/liveRatings/2017/04/30/ \ --input-fields-terminated-by '|' 参数解释: num-mappers 指定map的个数 export-dir 指定hive数据库对应的hdfs路径 input-fields-terminated-by '\t' 指定分隔符

6.oracle->hive

sqoop import \ --connect jdbc:oracle:thin:@主机名:端口号:ora11g \ --username root \ --password 123456 \ --table table_name \ --num-mappers 1 \ --hive-import \ --delete-target-dir \ --hive-database hive数据库名\ --hive-table hive中对应的table_name \ --direct \ --fields-terminated-by '\t' 参数解释: num-mappers 指定map的个数 delete-target-dir 提前删除指定目录 hive-database hive数据库名 hive-table hive数据库中表名 fields-terminated-by '\t' 指定分隔符
转载请注明原文地址: https://www.6miu.com/read-55749.html

最新回复(0)