zoukankan      html  css  js  c++  java
  • 2020年寒假假期总结0201

      使用Sqoop将mysql数据传到hive

      系统环境:hadoop2.65,mysql5.7.28,sqoop1.47,hive1.2.2,虚拟机centos7,物理机windows10

      注意点:安装sqoop不要将目录设在hadoop下面,否则在运行下面命令时会发生找不到jar包的问题,我估计是系统将hadoop的lib目录认为成了sqoop的lib目录了。因为在我把相应的jar包放在hadoop的lib文件下时就可以通过,由于有很多jar包,所以一个jar找到了,又会有一个jar包找不到,所以建议不要放在hadoop目录下。

      操作要求:将物理机的mysql数据转到虚拟机的mysql,然后使用sqoop将虚拟机的mysql转到hive中。

      1.在物理机中使用Navicat的导出向导,获取sql文件,利用里面的建表语句,在虚拟机的mysql中建表,需要注意的是,linux的建表语句和windows有些许差异,比如:在编码的改动,需要将原来的编码utf8mb4_0900_ai_ci改成utf8_general_ci,utf8mb4改成utf8。

      2.然后利用传输工具将sql文件传给虚拟机,然后虚拟机开启mysql,使用source命令调用sql文件,然后执行文件将所有数据插入mysql中。

      3.然后我们在hive中创建相应的表,需要注意的是hive中没有varchar,需要使用string代替。

      4.(可有可无)在hdfs上创建文件夹,来存放mysql数据

      5.使用sqoop将mysql转到hdfs上,注意点:需要打开hdfs和yarn

     用于换行
    bin/sqoop用来启动命令
    import用来导入配置
    connect连接数据库
    用户名
    密码
    执行语句,$CONDITIONS在使用query语句时必须加上
    指明hdfs上的目标目录
    如果指定文件目录存在则先删除掉
    使用1个map并行任务
    启动压缩
    指定hadoop的codec方式 默认为gzip
    使用直接导入方式,优化导入速度,在mysql中速度提升比较明显
    字段之间通过制表符分隔
    bin/sqoop import            
    --connect jdbc:mysql://192.168.133.130:3306/holiday2020   
    --username root   
    --password 123456   
    --query 'select * where capital_info $CONDITIONS LIMIT 5000'   
    --target-dir /heiyang/data   
    --delete-target-dir   
    --num-mappers 1   
    --compress   
    --compression-codec org.apache.hadoop.io.compress.SnappyCodec   
    --direct   
    --fields-terminated-by '	'  

      命令就会开始执行,会得到以下信息:

       表示map完成,然后我们就可以看到hdfs上产生了两个文件

      注意点:如果是一直停留在job开启的界面,没有运行下去的话,可以尝试检查一下yarn是否有设置好,或者端口问题。

       6.最后使用hive将数据导入到后hive中即可

    load data inpath '/heiyang/data/' into table default.capital_info;

  • 相关阅读:
    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
    Visual Studio断点调试, 无法监视变量, 提示无法计算表达式
    ASP.NET MVC中MaxLength特性设置无效
    项目从.NET 4.5迁移到.NET 4.0遇到的问题
    发布网站时应该把debug设置false
    什么时候用var关键字
    扩展方法略好于帮助方法
    在基类构造器中调用虚方法需谨慎
    ASP.NET MVC中商品模块小样
    ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积02, 在界面实现
  • 原文地址:https://www.cnblogs.com/heiyang/p/12249932.html
Copyright © 2011-2022 走看看