Sqoop 是Hadoop 和关系数据库 服务器之间传送数据 的一种工具
1 2 3 4 wget http://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gzmv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.7
环境配置文件:conf/sqoop-env.sh
一、表全量数据导入 1.1 关系性数据库全量数据导入HDFS 1 2 3 4 5 6 7 8 9 sqoop import \ --connect jdbc:mysql://ip:3306/database_name \ --username root \ --password 123456 \ --target-dir /path \ --table table_name \ --fields-terminated-by '\t' \ --split-by column_name \ --m 2
map任务数量不为1时,默认按主键拆分,没有主键时报错,需指定拆分键--split-by
1 ERROR tool.ImportTool: Import failed: No primary key could be found for table movie_list. Please specify one with --split-by or perform a sequential import with '-m 1' .
指定文本格式为拆分键需改配置参数
1 -Dorg.apache.sqoop.splitter.allow_text_splitter=true
1 2 3 4 5 6 7 8 9 10 sqoop import \ -Dorg.apache.sqoop.splitter.allow_text_splitter=true \ --connect jdbc:mysql://ip:3306/database_name \ --username root \ --password 123456 \ --target-dir /path \ --table table_name \ --fields-terminated-by '\t' \ --split-by column_name \ --m 2
1.2 关系性数据库全量数据导入Hive 将关系型数据库表结构复制到hive中
1 2 3 4 5 6 sqoop create-hive-table \ --connect jdbc:mysql://single01:3306/ebs \ --username root \ --password L3154638821 \ --table movie_list \ --hive-table test.movie
二、表子集数据导入
DataX kettle Maxwell