sqoop组建安装与配置

一.下载和解压 Sqoop

tar -zxvf /opt/software/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/src/

二.配置 Sqoop 环境

1.创建 Sqoop 的配置文件 sqoop-env.sh

2.修改 sqoop-env.sh 文件,添加 Hdoop、Hbase、Hive 等组件的安装路径

可删除#号 在后面添加 

export HADOOP_COMMON_HOME=/usr/local/src/hadoop
export HADOOP_MAPRED_HOME=/usr/local/src/hadoop
export HBASE_HOME=/usr/local/src/hbase
export HIVE_HOME=/usr/local/src/hive

3.配置 Linux 系统环境变量,添加 Sqoop 组件的路径

[root@master conf]# vi /etc/profile
#在文件末尾添加
# set sqoop environment
export SQOOP_HOME=/usr/local/src/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
export CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib

4.连接数据库

三.启动 Sqoop

1.启动hadoop集群

2.检查hadoop集群的运行状态

[root@master ~]# su - hadoop
[hadoop@master ~]$ source /etc/profile
[hadoop@master ~]$ start-all.sh

3.测试 Sqoop 是否能够正常连接 MySQL 数据库

[hadoop@master ~]$ sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P

能 够 查 看 到 MySQL 数 据 库 中 的 information_schema 、 hive 、 mysql 、performance_schema、sys 等数据库,说明 Sqoop 可以正常连接 MySQL。

4.连接hive

[hadoop@master ~]$ cp /usr/local/src/hive/lib/hive-common-2.0.0.jar /usr/local/src/sqoop/lib/

四.sqoop模板命令

1.创建 MySQL 数据库和数据表

。# 登录 MySQL 数据库
[hadoop@master ~]$ mysql -uroot -p
Enter password:

# 创建 sample 库
mysql> create database sample;

# 使用 sample 库
mysql> use sample;

mysql> create table student(number char(9) primary key, name varchar(10));
# 创建 student 表,该数据表有number 学号和 name 姓名两个字段;

向 student 表插入几条数据
mysql> insert into student values('01','zhangsan');

mysql> insert into student values('02','lisi');

mysql> insert into student values('03','wangwu');

mysql># 查询 student 表的数据
mysql> select * from student;

2.在 Hive 中创建 sample 数据库和 student 数据表

创建student表

3.从 MySQL 导出数据,导入 Hive

[hadoop@master ~]$ sqoop import --connect jdbc:mysql://master:3306/sample --username root --password Password123$ --table student --fields-terminated-by '|' --delete-target-dir --num-mappers 1 --hive-database sample --hive-table student

删除 MySQL 数据, student 表中 number 为主键,添加信息导致主键重复,报错,所以删除表数据

4.从 Hive 导出数据,导入到 MySQL

sqoop export --connect "jdbc:mysql://master:3306/sample?useUnicode=true&characterEncoding=utf-8" --username root --password Password123$ --table student --input-fields-terminated-by '|' --export-dir /user/hive/warehouse/sample.db/student/*

五:Sqoop 组件应用

(1)列出 MySQL 数据库中的所有数据库。

(2)连接 MySQL 并列出 sample 数据库中的表。

[hadoop@master ~]$ sqoop-list-tables -connect jdbc:mysql://localhost:3306/sample -username root -password Password123$

(3)将关系型数据的表结构复制到 hive 中,只是复制表的结构,表中的内容没有复制过去。

(4)从关系数据库导入文件到 Hive 中。

[hadoop@master ~]$ sqoop-import --connect  jdbc:mysql://master:3306/sample --username root --password Password123$ --table student --delete-target-dir --num-mappers 1 --hive-import --hive-database default --hive-table test

(5)将 Hive 中的表数据导入到 MySQL 中,在进行导入之前,MySQL 中的表hive_test 表必须已经提前创建好。

(6)从数据库导出表的数据到 HDFS 上文件。

(7)从数据库增量导入表数据到 HDFS 中。

查看导入数据

[hadoop@master ~]$hdfs dfs -cat /user/test/part-m-00000

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值