Sqoop导入数据之import的基本使用 |
您所在的位置:网站首页 › sqoop导入数据到hive报错 › Sqoop导入数据之import的基本使用 |
文章目录
前言一、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 |