sqoop 学习与问题
配置问题:centos7 与sqoop1.4.7,使用比较好一些。centos6与sqoop1.4.6一起使用比较好一些。如果在centos6版本中使用sqoop1.4.7会需要修改很多配置。具体会在后面提到
1、sqoop原理
实现数据的导入导出
将导入或到处命令翻译成mapreduce程序来实现的
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
2、sqoop 安装(这里不细说)
2.1、解压
2.2、重命名配置文件
mv sqoop-envtemplate.sh sqoop-env.sh
2.3、修改配置文件
sqoop-env.sh
2.4、拷贝JDB驱动到sqoop的lib目录下
注意在sqoop-env.sh中没有配置mysql,在执行命令的时候主动连接mysql
2.5、检测
列出数据库
sqoop list-databases \
--connect jdbc:mysql://hadoop01:3306 \
--username root --password 123456;
3、sqoop 的简单使用案例
3.1导入数据 import
从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据叫做:导入数据,
3.1.1 RDBMS到HDFS
确定mysql服务开启
建立数据库
在mysql中写入数据
CREATE TABLE `stu1` (
`id` bigint(10) NOT NULL,
`name` varchar(10) DEFAULT NULL,
`age` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
全部导入数据
sqoop import \
--connect jdbc:mysql://hadoop01:3306/mydb1 \
--username root \
--password 123456 \
--table stu1 \
--target-dir /user/sqoopmysql \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t"
查询导入$CONDITIONS 是用来传递参数的,保证输入输出一致
sqoop import \
--connect jdbc:mysql://hadoop01:3306/mydb1 \
--username roo