Sqoop介绍及数据迁移
Sqoop介绍
1、Sqoop是一个用于在Hadoop和关系数据库之间传输数据的工具
- a)将数据从RDBMS导入到HDFS
HDFS、Hive、HBase - b)从HDFS导出数据到RDBMS
- c)使用MapReduce导入和导出数据,提供并行操作和容错
2、目标用户
- a)系统管理员、数据库管理员
- b)大数据分析师、大数据开发工程师等
数据迁移
一、从RDB导入数据到HDFS
1、导入表到HDFS
1、语法如下所示:
注:sqoop-import是sqoop import的别名
案例:
`bin/sqoop-import --connect jdbc:mysql://hadoop001:3306/hive --driver com.mysql.jdbc.Driver --table TBLS --username root --password ok --target-dir /data/tbls --m 3
2、如果出现sqoop异常:Exception in thread “main” java.lang.NoClassDefFoundError: org/json/JSONObject
解决方案:
这是因为sqoop缺少java-json.jar包. 下载jar包导入lib目录下
- 1)下载java-json.jar压缩包并解压
- 2)将java-json.jar包导入/opt/sqoop/lib目录下
1.1 通过Where语句过滤导入表
- where:条件语句
- delete-target-dir:如果目标目录存在,则删除
语法如下所示:
案例:
bin/sqoop-import \
--connect jdbc:mysql://hadoop001:3306/hive \
--table TBLS \
--where "owner='root'" \
--username root \
--password ok \
--delete-target-dir \
--target-dir /data/tbls/ \
--m 3
#查看数据:hdfs dfs -cat /data/tbls/part-m-00000