ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0

Sqoop用来实现关系型数据库、HDFS、Hive之间的导入和导出

1、下载Sqoop1.4.6

地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz


2、使用tar -zxvf  sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz解压


3、使用vim /etc/profile

添加以下环境变量:

export SQOOP_HOME=/chenjie/sqoop-1.4.6.bin__hadoop-2.0.4-alpha
export PATH=$PATH:$SQOOP_HOME/bin


4、将mysql驱动放入sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib目录下

地址:https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.44.tar.gz 记得将jar包解压出来


5、使用Sqoop


5.1 使用Sqoop导入Mysql表到HDFS(事先启动Hadoop)

./sqoop import --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --table student --columns 'id,name' -m 1 --target-dir /sqoop/student

其中,./sqoop为启动sqoop命令,import 表示导入,--connect参数为数据库连接地址,jdbc表示使用jdbc,mysql表示mysql数据库,pc1为装有mysql的host名称,chenjie为数据库名称,--username root 表示用户名为root  --password root表示密码为root  --table表示要导的表名  --columns 'id,name'表示要导的列名  -m 1 表示使用一个mapreduce

--target-dir /sqoop/student 表示要导到HDFS的目标目录

可以看到在mysql中存在chenjie数据库,其中有student表

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第1张图片

执行操作

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第2张图片

执行完成:查看HDFS

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第3张图片




5.2 使用Sqoop从mysql导数据到hive

导之前,hive中show tables

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第4张图片


导入

./sqoop import --hive-import  --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --table student --columns 'id,name' -m 1 --hive-table student


ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第5张图片

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第6张图片

再使用hive show tables

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第7张图片

数据导出导入成功


5.3 使用Sqoop从mysql导数据到hive 并使用where条件

./sqoop import --hive-import  --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --table student --columns 'id,name' -m 1 --hive-table student2 --where 'id=1001'


5.4 使用Sqoop从mysql导数据到hive 并使用查询条件(注意:参数中没有--table   AND $CONDITIONS必须这么写)

./sqoop import --hive-import  --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --columns 'id,name' -m 1  --query 'select * from student where id < 1002 AND $CONDITIONS' --target-dir /sqoop/student3   --hive-table student3


5.5 使用Sqoop从hive(实际上存在HDFS中 )导出到mysql中

首先删掉mysql中stundent数据库中的数据,可以看到已经没有数据

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第8张图片

然后执行

./sqoop export --connect jdbc:mysql://pc1:3306/chenjie --username root --password root -m 1 --table mystudent --export-dir /sqoop/student3


完成后mysql中添加3条记录

ubuntu 安装使用 Sqoop1.4.6 + hive 2.3.0_第9张图片



你可能感兴趣的:(大数据)