sqoop安装与快速使用-----你想要的sqoop都在这里

场景
传统型缺点,分布式存储。把传统型数据库数据迁移。

Sqoop安装部署

1)下载安装包 
2)解压
	tar -zxvf .tar
3)修改配置
	vi sqoop-env.sh
	export HADOOP_COMMON_HOME=/root/hd/hadoop-2.8.4 
	export HADOOP_MAPRED_HOME=/root/hd/hadoop-2.8.4 
	export HIVE_HOME=/root/hd/hive
	export ZOOCFGDIR=/root/hd/zookeeper-3.4.10/conf
4)发送mysql驱动到lib下
5)检测是否安装成功 bin/sqoop help

import

1、数据从mysql中导入到hdfs当中
	bin/sqoop import --connect jdbc:mysql://bigdata:3306/sq --username hive --password hive --table user --target-dir /sqoop/datas --delete-target-dir --num-mappers 1 --fields-terminated-by '\t'
	注:在集群中运行,需要提前在mysql中设置权限
	grant all privileges on *.* to root@'%' identified by "password";
	flush privileges;

2、数据mysql中导入到hdfs当中进行筛选
	bin/sqoop import --connect jdbc:mysql://bigdata:3306/sq --username hive --password hive --target-dir /sqoop/selectdemo --delete-target-dir --num-mappers 1 --fields-terminated-by '\t' --query 'select * from user where id =1 and $CONDITIONS'
	注:$CONDITIONS笔记:并行的方式导入结果,每个maptask需要执行SQL查询语句的副本,结果会根据sqoop推测的边界条件分区。
		where必须包含$CONDITIONS。这样每个sqoop程序都会被替换为一个独立的条件。
		用于在多个num-mappers的时候做优化

3、通过where筛选
	bin/sqoop import --connect jdbc:mysql://bigdata:3306/sq --username hive --password hive --target-dir /sqoop/selectdemo --delete-target-dir --num-mappers 1 --fields-terminated-by '\t' --table user  --where 'id=2'

4、mysql导入到hive中
	需要先创建hive表
	过程:先从mysql表移动到hdfs,再从hdfs剪切到hive中,所以运行过程中会产生错误:
		ERROR tool.ImportTool: Import failed: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://192.168.1.9:9000/user/terry/user already exists
		需要先删除

	问题:hiveconf
	解决:
	vi ~/.bash_profile
	export HADOOP_CLASSPATH=$HADOOP_CLASSPASS:/Library/bigdata/apache-hive-2.3.0-bin/lib/*

	cp hive/lib/hive-common-3.0.0.jar sqoop/lib/ 

	bin/sqoop import --connect jdbc:mysql://bigdata:3306/sq --username hive - -password hive --table user --num-mappers 1 --hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table user_sqoop

export

需求:hive/hdfs的数据导出到mysql

1、根据hive中的表创建mysql表
	删除表中原有数据
		truncate table user1;

2、编写sqoop启动命令

	bin/sqoop export --connect jdbc:mysql://bigdata:3306/sq --username hive --password hive --table user1 --num-mappers 1 --export-dir /user/hive/warehouse/user_sqoop --input-fields-terminated-by '\t'

Sqoop打包脚本的使用

1)创建文件夹 
	mkdir sqoopjob

2)创建文件脚本
vi sqoop_job.opt

	export
	--connect jdbc:mysql://bigdata:3306/sq
	--username
	hive
	--password
	hive
	--table
	user1
	--num-mappers
	1
	--export-dir
	/user/hive/warehouse/user_sqoop
	--input-fields-terminated-by
	"\t"
注意:一行命令 一行值

3)执行脚本文件
	bin/sqoop --options-file /root/sqoopjob/job_hdfs2mysql.opt

sqoop常用命令

命令说明
–import将数据导入到集群
–export将集群数据导出
–codegen将某数据库中表生成javaBean并打包为jar
–eval查看sql执行结果
–create­-hive­-table创建hive表
–import­-all­-tables导入某个数据库中所有表到hdfs中
–list­-tables列出某个数据库下的所有表
–merge将hdfs中不同目录下的数据合并在一起
–version V查看sqoop版本
–help查看帮助信息

sqoop常用参数

参数说明
–connect连接关系型数据库URL
–connection­manager指定连接管理类
–driverJDBC的driver class
–username连接数据库的用户名
–password连接数据库的密码
–verbose在控制台中打印详细信息
–help查看帮助
–hive­-import将关系型数据库导入到hive表中
–hive­-overwrite覆盖掉hive表中已存在的数据
–create­-hive­-table创建hive表
–hive­-table接入已有的hive表
–table指定关系型数据库的表名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值