sqoop安装部署
sqoop安装部署
安装sqoop的前提是已经具备Java和Hadoop环境。
下载地址:https://www.apache.org/dyn/closer.lua/sqoop/
这里用的是:sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
1. sqoop的安装及配置
(1) 上传安装包sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz到虚拟机中
(2) 进入上传的安装包目录,解压sqoop安装包到指定目录,如:
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/module/
解压后,进入解压后的目录把名字修改为sqoop
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
2. 设置sqoop环境变量
命令:
vi /root/.bash_profile
加入下面内容:
export SQOOP_HOME=/opt/module/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
使设置立即生效:
source /root/.bash_profile
3. 修改配置文件
Sqoop的配置文件与大多数大数据框架类似,在sqoop根目录下的conf目录中。
进入sqoop下面的conf
命令:
cd /opt/module/sqoop/conf
(1) 重命名配置文件sqoop-env-template.sh
mv sqoop-env-template.sh sqoop-env.sh
(2) 修改配置文件 sqoop-env.sh
命令:
vi sqoop-env.sh
修改一下内容:
export HADOOP_COMMON_HOME=/opt/module/hadoop //Hadoop安装目录
export HADOOP_MAPRED_HOME=/opt/module/hadoop //Hadoop安装目录
export HIVE_HOME=/opt/module/hive //hive安装目录
export ZOOKEEPER_HOME=/opt/module/zookeeper //zookeeper安装目录
export ZOOCFGDIR=/opt/module/zookeeper //zookeeper安装目录
4. 拷贝JDBC驱动
上传jdbc驱动到/opt/software目录中。
进入存放jdbc驱动的目录下,拷贝jdbc驱动到sqoop的lib目录下
cp mysql-connector-java-5.1.37.jar /opt/module/sqoop/lib/
5. 验证Sqoop
进入sqoop安装目录,我们可以通过某一个command来验证sqoop配置是否正确:
bin/sqoop help
6. 测试Sqoop是否能够成功连接数据库
进入sqoop安装目录,执行
bin/sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password 111111
出现如下输出:
7. 通过sqoop将hive中的数据传输到MySQL数据库
7.1 hive中建表
(1)先在hive中创建表,数据类型和MySQL中的数据类型相对应
hive> create table student
> (id varchar(50),name varchar(50),age int,school varchar(50),class varchar(50))
> row format delimited fields terminated by ',';
如图所示:
(2)准备数据,数据格式要和表结构相对应
在student.txt文件中加入以内容:
19308001,zhangsan,20,111111,222222
19308002,lisi,21,333333,444444
19308003,wangwu,20,555555,666666
19308004,liliu,20,777777,888888
19308005,zhangfei,21,999999,111111
注:以什么为分隔符,就用什么符号,这里使用的是逗号为分隔符
然后上传到/opt/software上
(3)将txt文件数据导入到hive中
load data local inpath '/opt/software/student.txt' into table student;
# inpath里面是存放txt文件的路径
(4)查看表中数据
hive> select * from student;
如图所示:
7.2 MySQL中建表
登录MySQL
mysql -uroot -p
(1)创建一个数据库
mysql> create database hive;
(2)使用hive数据库
mysql> use hive;
(3)数据库中创建表
mysql> create table student (id varchar(50),name varchar(50),age int,school varchar(50),class varchar(50));
如图所示:
(4)添加一条数据
mysql> insert into student values('19308009','wangmazi','22','666666','777777');
如图所示:
7.3 sqoop将hive中的数据传输到MySQL中
进入/opt/module/sqoop/bin目录中执行命令
[root@master bin]# sqoop export --connect jdbc:mysql://master:3306/hive --username root --password 111111 --table student --num-mappers 1 --export-dir /user/hive/warehouse/student --input-fields-terminated-by ','
//说明
//master:3306/hive hive是指MySQL中的数据库
--export-dir /user/hive/warehouse/student 导出数据的目录
--input-fields-terminated-by ',' 导出数据时,使用什么分隔符分割字段
--table student 导出到 MySQL 的哪张表
hive创建的表在hdfs上面的位置为:/user/hive/warehouse/student
如图所示:
成功后进入MySQL数据库中查询数据
如图所示:

浙公网安备 33010602011771号