• 每日日报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

  • 相关阅读:
    memento模式
    observe模式
    state模式
    Trie树的简单介绍和应用
    strategy模式
    全组和问题
    SRM 551 DIV2
    全排列问题
    TSE中关于分词的算法的改写最少切分
    template模式
  • 原文地址:https://www.cnblogs.com/miao-com/p/15353490.html
Copyright © 2020-2023  润新知