Sqoop导入数据之import的基本使用

您所在的位置:网站首页 sqoop导入数据到hive报错 Sqoop导入数据之import的基本使用

Sqoop导入数据之import的基本使用

2023-10-09 11:43| 来源: 网络整理| 查看: 265

文章目录 前言一、Sqoop是什么,import操作是怎样?二、Mysql到HDFS1.创建Mysql表2.插入数据3.import到HDFS 三、Mysql到Hive总结

前言

提示:本教程使用环境为: CentOS6.5 CDH5.3.6 本教程将演示由Mysql到HDFS和Mysql到Hive两种导入过程, 由于版本不一致可能会有操作上的不同。如果目前仍没有搭好Sqoop环境,请看最简便CentOS6.5下CDH版本sqoop安装步骤

一、Sqoop是什么,import操作是怎样?

Sqoop - “SQL到Hadoop和Hadoop到SQL”, sqoop是apache旗下一款"Hadoop和关系数据库服务器之间传送数据"的工具。 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统; 导出数据:从Hadoop的文件系统中导出数据到关系数据库mysql等。 在这里插入图片描述 可以看到,Sqoop的import过程主要是由map实现的,而不经过reduce过程。本教程选取Mysql数据库作为RDBMS的代表,所以请想动手验证的各位确保自己安装好了Mysql环境与驱动。

二、Mysql到HDFS 1.创建Mysql表

首先命令行输入mysql -u用户名 -p密码 ;进入mysql,输入use 数据库名 ;选定数据库,然后创建下表:

mysql> CREATE TABLE emp1 -> ( -> id INT(11)primary key, -> name VARCHAR(25), -> deptId INT(11), -> salary FLOAT -> );

使用desc emp1 ;查看表结构 在这里插入图片描述

2.插入数据

表格创建好后还没有数据,我们要随便往里写一些。

INSERT INTO emp1 VALUES(1,'Joey',1,3000); INSERT INTO emp1 VALUES(2,'Chandler',1,5000); INSERT INTO emp1 VALUES(3,'Mary',2,8000); INSERT INTO emp1 VALUES(4,'Lip',2,3000);

然后查看表数据是否填写成功:

在这里插入图片描述

3.import到HDFS

首先启动好我们的HDFS, 在这里插入图片描述 然后进入Sqoop安装目录导入数据:

bin/sqoop import \ --connect jdbc:mysql://hadoop:3306/test \ --username root \ --password password \ --table emp1\ --m 1

其中jdbc后注意更改为自己的主机名和数据库名,三四行改为自己的mysql用户名和密码 我们观察命令运行过程可以看到sqoop底层运行的就是mapreduce,它是将这个保存为一个emp1.jar的包来执行,现在我们可以用bin/hdfs dfs -cat /user/root/emp1/part-m-00000命令查看结果 在这里插入图片描述 成功导入!

三、Mysql到Hive

过程与前面类似,只需添加上hive-import

bin/sqoop import \ --connect "jdbc:mysql://hadoop:3306/test" \ --username root \ --password password \ --hive-import \ --fields-terminated-by ',' \ --table emp1 \ --m 1

执行完后我们进入hive的shell进行查看是否多了表 在这里插入图片描述 看到多了emp1这个表,输入select * from emp1 ; 在这里插入图片描述 发现数据已经成功导入,但其实我们清楚Hive的存储实际上没有改变文件格式,那么这个Hive的导入和HDFS的导入有何区别呢?我们进入HDFS目录进行查看: 在这里插入图片描述 发现HDFS的默认导入目录上也多了emp1这个目录,但只有执行成功的文件并没有数据,我们再进入warehouse目录查看 在这里插入图片描述 可以得出这个导入的底层实际实现还是将mysql表数据导入到了HDFS的默认目录,后调用hive元数据操作API接口,执行建表、将数据从临时目录导入到hive目录的操作。

总结

本节教程我们尝试了Sqoop的import功能,将Mysql数据导入到HDFS或Hive上,其中import还有更多的参数设置包括snappy压缩,存储格式调整等等希望大家多多尝试,一同学习进步!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3