sqoop导入导出数据

Sqoop是一个RDBMS和hadoop之间高效传输数据工具,本文重点介绍与MySQL的导入导出工作

1,安装注意事项

     在这里我不得不说一下,sqoop在下载安装时,要注意与mysql驱动的版本兼容性

     sqoop真的是兼容性太差,这次我也是栽到坑爬不出来了,具体网上说是mysql驱动版本不一致,小编也是倒腾一天也没见好转,最奇葩的就是可以在hdfs上和导入导出,hive和hbase就完蛋,编译没错,一运行就gg,不过写的命令是没错的,大家可以放心使用。

2,mysql和hdfs上的导入导出

1,mysql导入到hdfs上
//有主键的表
    $>sqoop import --connect jdbc:mysql://192.168.192.1:3306/acc   //连接端口/数据库名
				   --driver com.mysql.jdbc.Driver				//驱动
				   --username root								//用户名
				   --password zxz								//密码
				   --table school								//mysql表名
				   --columns id,name						    //指定字段列表
				   --m	1						//指定map的任务数(一般用在无主键情况下)
				   --target-dir /user/had/hadoop/mysql			 //hdfs的目录
				   //控制增量导入(可选)
					--check-column id  //指定从哪个字段控制
					--incremental append    //表示从上次数据上追加
					--last-value 11          //上次导入的最后一个数据值

列如:sqoop inport --connect --connect jdbc:mysql://192.168.192.1:3306/acc --driver com.mysql.jdbc.Driver --username root --password zxz--table school--columns id,name --m 3 --target-dir /user/had/hadoop/mysql
 


//无主键的表
	$>sqoop inport --connect jdbc:mysql://192.168.192.1:3306/acc
					--driver com.mysql.jdbc.Driver 
					--username root 
					--password zxz 
					--table school
					--target-dir user/had/hadoop/mysql
					-m 1							//使用一个map

列如:sqoop export --connect --connect jdbc:mysql://192.168.192.1:3306/acc --driver com.mysql.jdbc.Driver --username root --password zxz--table school--columns id,name --m 1 --target-dir /user/had/hadoop/mysql

2,hdfs导出数据到mysql(其实和上面的一样就是把--target-dir换成--export-dir)

例如: sqoop export --connect jdbc:mysql://192.168.129.1:3306/accp --driver com.mysql.jdbc.Driver --username root --password zxz --table school --export-dir /hadoop/mysql2

3,mysql在hive上导入(sqoop不支持hbase和hive向mysql里导入数据)

mysql导入数据到hive(相同的命令我就不说了说一下需要添加什么)
      --hive-import  //声明向hive导入数据
      --create-hive-table //声明向hive自动建表(有时候可能不好使,还带需要自己手动建)
      --hive-talbe  school  //指定表
      --hive-database default //指定数据库,不过不指定他好像会自动添加到默认数据库分钟

例如:
sqoop import --connect jdbc:mysql://192.168.192.1:3306/acc --driver com.mysql.jdbc.Driver --username root --password zxz --table school --hive-import  --create-hive-table --hive-table school

4.mysql导入数据到hbase

mysql导入数据到hbase上(在导入之前要在hbase上创建好表和列族)
    --hbase-create-table   //指定在hbase上建表
    --hbase-table zxz:acc  //指定表
    --hbase-row-key id          //指定在MySQL中的那个表充当rowkey
    --column-family z1     //指定列族
    -m 1                   //使用一个map

例如:
sqoop import --connect jdbc:mysql://localhost:3306/acc --driver com.mysql.jdbc.Driver --username root --password zxz --table school --hbase-create-table --hbase-table zxz:acc --hbase-row-key id --column-family z1 -m 1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值