每日日报24——数据导入+数据导出【将csv文件导入到Hive数据库中,再将其从Hive数据库中导出到MySQL中(内附Sqoop的安装及配置)】

①进入Hive

打开cmd,然后启动Hadoop,然后进入Hadoop的bin目录,输入hive,进入Hive

之后输入show tables;即可查看hive里面的表

②将csv文件导入到hive中

先新建一个表,将其命名为retail,建表语句如下:

create table retail(InvoiceNo varchar(255),StockCode varchar(255),Description varchar(255),Quantity varchar(255),InvoiceDate varchar(255),UnitPrice varchar(255),CustomerID varchar(255),Country varchar(255)) row format delimited fields terminated by ',';

建表成功(只截取了其中一部分图)

然后将csv文件里的数据导入到刚刚新建的这个表中,导入语句如下:

 load data local inpath 'E: etail.csv' overwrite into table retail;

导入成功

然后输入 show tables; 查看一下hive中有没有表retail

之后输入查询语句,查询该表中数据,查询语句如下:

select * from retail limit 100;

然后就可以看到数据啦(有些数据我打了马赛克)

输入网址:http://localhost:50070

(如果显示不出这个网页,说明hadoop和hive没有完全配置好)

然后输入相关路径,我就看到了我之前导入的retail.csv文件啦

参考链接https://www.cnblogs.com/Bread-Wang/p/10078254.html

③将查询结果保存到另一个表中

先建立一个表,语句可类似于:

create table retail(InvoiceNo varchar(255),StockCode varchar(255),Description varchar(255),Quantity varchar(255),InvoiceDate varchar(255),UnitPrice varchar(255),CustomerID varchar(255),Country varchar(255)) row format delimited fields terminated by ',';

将表名retail改为retai_test_first,即:

create table retai_test_first(InvoiceNo varchar(255),StockCode varchar(255),Description varchar(255),Quantity varchar(255),InvoiceDate varchar(255),UnitPrice varchar(255),CustomerID varchar(255),Country varchar(255)) row format delimited fields terminated by ',';

建表成功后,输入语句:

insert into retail_test_first select * from retail where Country='(此处写入自己要查询的名称)';

(注意分号一定不能少)

插入成功后,输入语句select * from retail_test_first;来检验一下是否插入成功。

参考链接https://blog.csdn.net/liao_shui/article/details/103286003

④下载并安装Sqoop

下载链接:http://archive.apache.org/dist/sqoop/1.4.7/

选择sqoop-1.4.7.tar.gz,下载,然后配置相关环境

进入此电脑->属性->高级系统设置->环境变量

新建系统变量:SQOOP_HOME

Path中加入:%SQOOP_HOME%in

然后启动cmd,输入sqoop version,出现如下问题:

解决办法:下载sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz,下载路径如下:

http://archive.apache.org/dist/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

将sqoop-1.4.6.jar复制粘贴到sqoop-1.4.7的lib目录下

然后重新启动cmd,重新输入sqoop version,问题即解决

连接mysql数据库

mysql-connector-java-5.1.41-bin.jar导入Sqoop的lib目录下

连接语句:sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123

⑤通过Sqoop将hive中的数据导出到MySQL数据库中

前提是要将相对应的数据库及数据表给建立好!

语句:sqoop export --connect jdbc:mysql://localhost:3306/retail --username root --password 123 --table retail --export-dir /user/hive/warehouse/retail_test_first

其中第一个retail为数据库名,第二个retail为表名,/user/hive/warehouse/retail_test_first为hive中数据的路径

导入成功后,去Navicat上查看数据有没有导入到数据库

很明显,已经导入进来啦!

参考链接https://www.iteye.com/blog/niuzhenxin-1726414

原文地址:https://www.cnblogs.com/miao-com/p/15353490.html