hadoop学习之sqoop(7):sqoop的安装与使用
2016-12-15 22:15
260 查看
sqoop是一款数据迁移工具,它能将数据在RDBMS(mysql,oracle...)和HDFS(hdfs,hive,hbase)之间互相传输,很方便。
一,安装
1,下载解压sqoop-1.4.6.bin--hadoop-2.0.4-alpha.tar.gz
2,修改配置文件
将hadoop,hive,hbase等的路径改为本机的路径。
3,将mysql-connector-java.jar文件复制到sqoop/lib文件夹下
二,将mysql中的表数据导入hdfs
1,mysql整个表导入hdfs
前提是mysql的test库中已有现成的表stu,如:
导入hdfs就执行如下命令:
这样,mysql中的表数据就导入hdfs指定的目录下了。
注:命令要在sqoop的根目录下执行,一般hadoop的辅助工具(flume,azkaban,sqoop)都要求在根目录执行命令。还有,jdbc的协议中最好用主机名或ip地址,用localhost的话有可能报错。
2,mysql表按查询条件导入hdfs
3,mysql整张表导入到Hive表中
在1的基础上加个--hive-import即可,且不要--target-dir,因为hive表默认是导入/user/hive/warehouse/下的,即只能导入内部表。
4,mysql表按查询条件导入hive
(1)首先应按查询条件新建一个hive表(指定了字段分隔符为‘,’)
(2)然后倒入数据
注:导入语句指定的分隔符要和hive表的分隔符一致
5,mysql增量插入hdfs(暂不支持hive)
如:mysql表的id是升序的,以id为准,指定上次导入的最大id号,然后会把大于该id号的数据项导入到hdfs上
在(1)的基础上加上3个项:
三,hdfs数据导出到mysql表
首先,要按hdfs上数据的格式在mysql中创建目标表,
然后执行命令;
bin/sqoop export --connect jdbc:mysql://node1:3306/test --username root --password 123456 --table stu --export-dir /user/sqoop/stu指定要导出的mysql表--table,指定从哪里到处--export-dir
导出后即可在mysql中查看。
一,安装
1,下载解压sqoop-1.4.6.bin--hadoop-2.0.4-alpha.tar.gz
2,修改配置文件
sqoop/conf mv sqoop-env.template.sh sqoop-env.shvim sqoop-env.sh
将hadoop,hive,hbase等的路径改为本机的路径。
3,将mysql-connector-java.jar文件复制到sqoop/lib文件夹下
二,将mysql中的表数据导入hdfs
1,mysql整个表导入hdfs
前提是mysql的test库中已有现成的表stu,如:
1,jimmy,25 2,angela,24
导入hdfs就执行如下命令:
bin/sqoop import --connect jdbc:mysql://node1:3306/test --username root --password 123456 --table stu --target-dir /user/sqoop/data_from_mysql
这样,mysql中的表数据就导入hdfs指定的目录下了。
注:命令要在sqoop的根目录下执行,一般hadoop的辅助工具(flume,azkaban,sqoop)都要求在根目录执行命令。还有,jdbc的协议中最好用主机名或ip地址,用localhost的话有可能报错。
2,mysql表按查询条件导入hdfs
bin/sqoop import --connect jdbc:mysql://node1:3306/test --username root --password 123456 --query 'select XXX,XXX from XXX where XXX and $CONDITIONS ' --target-dir /user/sqoop/data_from_mysql即只需加一个--query,且不要--table,因为select语句里面会有表的名字。
3,mysql整张表导入到Hive表中
bin/sqoop import --connect jdbc:mysql://node1:3306/test --username root --password 123456 --table stu --hive-import
在1的基础上加个--hive-import即可,且不要--target-dir,因为hive表默认是导入/user/hive/warehouse/下的,即只能导入内部表。
4,mysql表按查询条件导入hive
(1)首先应按查询条件新建一个hive表(指定了字段分隔符为‘,’)
(2)然后倒入数据
bin/sqoop import --connect jdbc:mysql://node1:3306/test --username root --password 123456 --query 'select XXX,XXX from XXX where XXX and $CONDITIONS ' --hive-import--target-dir /user/hive/warehouse --hive-table stu2 --fields-terminated-by ','
注:导入语句指定的分隔符要和hive表的分隔符一致
5,mysql增量插入hdfs(暂不支持hive)
如:mysql表的id是升序的,以id为准,指定上次导入的最大id号,然后会把大于该id号的数据项导入到hdfs上
在(1)的基础上加上3个项:
--incremental append --check-column id --last-value 99这样,就会把mysql表中id大于99的项,追加到hdfs目录下面。
三,hdfs数据导出到mysql表
首先,要按hdfs上数据的格式在mysql中创建目标表,
然后执行命令;
bin/sqoop export --connect jdbc:mysql://node1:3306/test --username root --password 123456 --table stu --export-dir /user/sqoop/stu指定要导出的mysql表--table,指定从哪里到处--export-dir
导出后即可在mysql中查看。
相关文章推荐
- Sqoop安装与使用(sqoop-1.4.5 on hadoop 1.0.4)
- hadoop(2): 安装&使用 sqoop
- Hadoop的学习--安装配置与使用
- hadoop入门学习系列之六hadoop学习之sqoop安装
- Sqoop安装与使用(sqoop-1.4.5 on hadoop 1.0.4)
- hadoop学习序曲之linux基础篇--linux的安装和使用
- hadoop学习之flume(4):flume的安装与使用
- sqoop1安装在hadoop2.6.0上不能使用import命令的问题
- 【hadoop sqoop】sqoop1的安装和使用
- hadoop学习之总目录(1):安装和使用完全分布式hadoop-2.7.2及其家族其他成员
- hadoop(八) - sqoop安装与使用
- hadoop学习第十一节: Sqoop介绍、安装与操作
- 开始hadoop前的准备:ubuntu学习笔记-基本环境的搭建(ssh的安装,SecureCRT连接,vim的安装及使用、jdk的安装)
- 学习Hadoop 使用虚拟机安装CentOS6.5 专治NetworkManager 找不到eth0
- 大数据学习笔记——hadoop1.2.1 eclipse_plugin编译、安装及使用
- hadoop集群安装以及Hive、sqoop的使用
- Hadoop集群中sqoop的安装使用
- Hadoop2.7.0学习——phoenix-4.8.0和squirrel的安装及使用
- Hadoop学习笔记(二)——插件安装和使用(Hadoop Eclipse)
- Hadoop学习笔记: sqoop配置与使用