sqoop数据迁移

sqoop数据迁移

概述:

sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。
导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统;
导出数据:从Hadoop的文件系统中导出数据到关系数据库mysql等

工作机制:是将导入和导出的命令翻译成mapreduce程序来实现,在翻译出的mapreduce中主要对inputformat和outputformat进行定制

sqoop安装

安装sqoop的前提是已经具备java和hadoop的环境

下载并解压

下载地址
http://archive.cloudera.com/cdh5/cdh/5/

sqoop1版本详细下载地址
http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.14.0.tar.gz
sqoop2版本详细下载地址
http://archive.cloudera.com/cdh5/cdh/5/sqoop2-1.99.5-cdh5.14.0.tar.gz

这里我使用的是sqoop1的版本,下载之后上传到/export/softwares目录下,然后进行解压

cd /export/softwares
tar -zxvf sqoop-1.4.6-cdh5.14.0.tar.gz -C ../servers/

修改配置文件

cd /export/servers/sqoop-1.4.6-cdh5.14.0/conf/
cp sqoop-env-template.sh  sqoop-env.sh
vim sqoop-env.sh
export HADOOP_COMMON_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export HADOOP_MAPRED_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export HIVE_HOME=/export/servers/hive-1.1.0-cdh5.14.0

加入额外的依赖包

sqoop的使用需要添加两个额外的依赖包,一个是mysql的驱动包,一个是java-json的的依赖包,不然就会报错
mysql-connector-java-5.1.40.jar
java-json.jar

将这两个jar包添加到sqoop的lib目录下

启动:

cd /export/servers/sqoop-1.4.6-cdh5.14.0
bin/sqoop-version

sqoop的数据导入

“导入工具”导入单个表从RDBMS到HDFS。表中的每一行被视为HDFS的记录。所有记录都存储为文本文件的文本数据(或者Avro、sequence文件等二进制数据)

列举所有的数据库

命令行查看帮助

bin/sqoop list-databases --help

列出所有的主机的数据库

bin/sqoop list-databases --connect jdbc:mysql://192.168.15.22:3306/ --username root --password root

查看某个数据库下的所有数据表

bin/sqoop list-tables --connect jdbc:mysql://192.168.15.22:3306/userdb --username root --password root
导入数据库表数据到hdfs

用下面命令从mysql数据库服务器包表emp表导到hdfs

–m启动一个maptask

bin/sqoop import --connect jdbc:mysql://192.168.15.37/userdb --username root --password root --table emp --m 1

验证是否导入成功

hdfs dfs -ls /user/root/emp

导入数据表到指定hdfs的目录

使用参数 --target-dir来指定导出目的地,
使用参数—delete-target-dir来判断导出目录是否存在,如果存在就删掉

bin/sqoop import --connect jdbc:mysql://192.168.15.37/userdb --username root --password root --table emp --m 1 --delete-target-dir --target-dir /sqoop/emp

查看导入的数据

hdfs dfs -text /sqoop/emp/part-m-00000

默认会使用逗号来分隔表中的数据和字段

 
 

你可能感兴趣的:(大数据,sqoop,sqoop,数据迁移,表导入导出)