Sqoop—数据迁移
文章目录
一、Sqoop概述
1.定义
Soop是一个用于在Hadoop和关系数据库之间传输数据的工具
将数据从RDBMS导入到Hadoop( HDFS、HIve、HBase)
从Hadoop导出数据到RDBMS
将导入或导出命令翻译成MapReduce程序来并行操作和容错
2.目标用户
系统管理员、数据库管理员
大数据分析师、大数据开发工程师等
二、导数据
2.1 从RDB导入数据到HDFS
2.1.1 导入表到HDFS
sqoop-import --connect jdbc:mysql://主机名:3306/retail_db \
//sqoop-import是sqoop import的别名
--driver com.mysql.jdbc.Driver \
//配置数据库连接为MySQL中数据库,具体到哪个数据库
--table customers \
// 表名
--username root \
--password root\
//用户名密码
--target-dir /data/retail_db/customers \
//指定目录(hdfs)
--m 3
//m表示Mapper数量
ps:导入会报错,缺少java-json的包,需要下载后放到sqoop的lib目录下
报错信息如下
报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43)
at org.apache.sqoop.SqoopOptions.writeProperties(SqoopOptions.java:784)
at org.apache.sqoop.mapreduce.JobBase.putSqoopOptionsToConfiguration(JobBase.java:392)
at org.apache.sqoop.mapreduce.JobBase.createJob(JobBase.java:378)
at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:256)
at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:692)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:513)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:621)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.<