sqoop命令的使用
2017-03-22 13:33
260 查看
Sqoop(发音:skup)是一款开源的数据迁移工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,
可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
底层就是MapReduce,用来做数据迁移。数据迁移很快,通过网络进行集群的操作。
将数据库hive中的TBLS表导入HDFS中
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS
将数据库hive中的TBLS表导入HDFS中的/sqoop/td1中 启动两个map任务
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS --target-dir /sqoop/td1
-m 2
指定列与列的分隔符为'\t',默认问逗号(,);指定要导出的列
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS --target-dir /sqoop/td1
-m 2 --fields-terminated-by '\t' --columns "CREATE_TIME,OWNER,TBL_NAME"
加where条件
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS --target-dir /sqoop/td1
-m 1 --fields-terminated-by '\t' --columns "CREATE_TIME,OWNER,TBL_NAME" --where 'SD_ID=2'
直接写sql语句
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --query 'select * from TBLS'
--target-dir /sqoop/td4 -m 1 --fields-terminated-by '\t'
如果用两个map会出错,因为map不知道自己读多少数据。所以加个--split-by
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --query 'select * from TBLS'
--target-dir /sqoop/td4 -m 2 --fields-terminated-by '\t' --split-by TBLS.OWNER
//将HDFS中的数据导入到mysql数据库中。命令太长,可以用\换行
./bin/sqoop export --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --export-dir '/sqoop/td3' --table td_o1o6 -m 1\
--fields-terminated-by '\t'
可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
底层就是MapReduce,用来做数据迁移。数据迁移很快,通过网络进行集群的操作。
将数据库hive中的TBLS表导入HDFS中
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS
将数据库hive中的TBLS表导入HDFS中的/sqoop/td1中 启动两个map任务
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS --target-dir /sqoop/td1
-m 2
指定列与列的分隔符为'\t',默认问逗号(,);指定要导出的列
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS --target-dir /sqoop/td1
-m 2 --fields-terminated-by '\t' --columns "CREATE_TIME,OWNER,TBL_NAME"
加where条件
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --table TBLS --target-dir /sqoop/td1
-m 1 --fields-terminated-by '\t' --columns "CREATE_TIME,OWNER,TBL_NAME" --where 'SD_ID=2'
直接写sql语句
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --query 'select * from TBLS'
--target-dir /sqoop/td4 -m 1 --fields-terminated-by '\t'
如果用两个map会出错,因为map不知道自己读多少数据。所以加个--split-by
./bin/sqoop import --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --query 'select * from TBLS'
--target-dir /sqoop/td4 -m 2 --fields-terminated-by '\t' --split-by TBLS.OWNER
//将HDFS中的数据导入到mysql数据库中。命令太长,可以用\换行
./bin/sqoop export --connect jdbc:mysql://192.168.1.120:3306/hive --username hive --password hive --export-dir '/sqoop/td3' --table td_o1o6 -m 1\
--fields-terminated-by '\t'
相关文章推荐
- 使用shell脚本执行hive、sqoop命令
- 2、sqoop的命令使用
- HBase Shell 操作命令&&使用Sqoop将数据导入HBase
- sqoop1.4.6命令使用(一)
- Sqoop笔记二之命令使用
- 使用shell脚本执行hive、sqoop命令的方法
- sqoop1安装在hadoop2.6.0上不能使用import命令的问题
- Sqoop的命令使用
- linux下使用系统调用编程实现dir命令功能
- SQL Server中使用外部命令执行sql脚本
- SQL*PLUS命令的使用大全
- SQL Server中使用外部命令执行sql脚本
- 批处理文件中使用的命令的详细信息
- ar和nm命令的使用
- iptables命令的使用备忘
- NC常用的使用命令
- SQL*PLUS命令的使用大全
- 使用C#调用外部Ping命令获取网络连接情况[转载CSDN]
- 使用C#调用外部Ping命令获取网络连接情况
- zt: SQL*PLUS常用命令和Decode()函数使用技巧