CentOS 7 配置hadoop(五) 配置sqoop(伪分布)
章节:
第一章节:CentOS 7 配置hadoop(一) 安装虚拟机(伪分布)
第二章节:CentOS 7 配置hadoop(二) 配置hdfs(伪分布)
第三章节:CentOS 7 配置hadoop(三) 配置hbase(伪分布)
第四章节:CentOS 7 配置hadoop(四) 配置hive(伪分布)
第五章节:CentOS 7 配置hadoop(五) 配置sqoop(伪分布)
第六章节:CentOS 7 配置hadoop(六) 配置flume(伪分布)
第五章CentOS 7 配置hadoop(五) 配置sqoop(伪分布)
准备 sqoop压缩包 所需内容在第一章节 CentOS 7 配置hadoop(一) 安装虚拟机
1.使用 FileZilla 上传sqoop文件到虚拟机
2.上传完成,到虚拟机解压 tar -xzvf 包名
3.解压完成
1)配置环境变量
export SQOOP_HOME=/root/sqoop-1.4.6-cdh5.7.0 export PATH=$PATH:$SQOOP_HOME/bin
2)拷贝mysql的jdbc jar文件sqoop的lib目录 在上章 hive的lib包下已经存在,只需要传过来就OK
cp /root/hive-1.1.0-cdh5.7.0/lib/ mysql-connector-java-5.1.45-bin.jar /root/sqoop-1.4.6-cdh5.7.0/lib/
注意:1.使用sqoop前需要导入Java-json.jar的包到sqoop的lib目录下 使用FileZilla上传 (文件在章节一)
2.将hive/lib/hive* 拷贝到sqoop的lib目录下 cp /root/hive-1.1.0-cdh5.7.0/lib/hive* /root/sqoop-1.4.6-cdh5.7.0/lib/
3)测试 sqoop version
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P 回车之后会让输入mysql root用户的密码
出现上述红框的内容证明sqoop配置无误
在使用sqoop是,需要在mysql 赋予虚拟机用户的权限 master为主机名 12345为mysql密码
grant all privileges on *.* to root@master identified by '12345';
flush privileges;
4.使用sqoop
1)mysql导入到hive(hdfs)
(1)进入mysql 创建数据库
create database hive_test;
进入数据库
use hive_test;
创建表
CREATE TABLE user (id int,name varchar(20));
添加数据
insert into user (id,name) values (1,'a'),(2,''test);
(2)进入hive 创建数据库
create database hive_test;
进入数据库
use hive_test;
创建表
create table user (id int,name string)row format delimited fields terminated by '\t';
(3)mysql数据导入hive数据
# --connect 连接 --username mysql账号 --password mysql密码 --table mysql表名 -m 执行map的次数 --fields-terminated-by 列的分割 --hive-import 导入hive --hive-database hive中的那个数据库 --hive-table hive表 --target-dir 是你要导入到那个表的地址
sqoop import --connect jdbc:mysql://master:3306/hive_test --username root --password hadoop --table user --fields-terminated-by '\t' --delete-target-dir --target-dir /user/hive/warehouse/hive_test.db/user --m 1 --hive-import --hive-database hive_test --hive-table user
(4)查看hive 中的表数据
显示出来代表执行成功
2)hdfs导出到mysql
(1)创建hive 表
create table users (id int,name string)row format delimited fields terminated by '\t'
(2)添加数据
insert into users values (1,'b'),(2,'a');
(3)创建mysql表
CREATE TABLE users (id int,name varchar(20));
(4)hdfs导入mysql
#--connect 连接 --username mysql账号 --password mysql密码 --table mysql表名 --export-dir hive文件在网站上的那个地方 --fields-terminated-by 列的分割 --m 执行map的次数
sqoop export --connect jdbc:mysql://master:3306/hive_test --username root --password hadoop --table users --export-dir /user/hive/warehouse/hive_test.db/users/000000_0 --fields-terminated-by '\t' --m 1
(5)查看mysql表中数据
到此sqoop配置以及使用结束!!!