zoukankan      html  css  js  c++  java
  • 大数据之路week07--day07 (Sqoop 从mysql增量导入到HDFS)

    我们之前导入的都是全量导入,一次性全部导入,但是实际开发并不是这样,例如web端进行用户注册,mysql就增加了一条数据,但是HDFS中的数据并没有进行更新,但是又再全部导入一次又完全没有必要。

    所以,sqoop提供了增量导入的方法。

    1、数据准备:

    2、将其先用全量导入到HDFS中去

    3、先在mysql中添加一条数据,在使用命令进行追加

     #指定字段的取值范围,增量到数据(指的是Mysql增加了一条或多条数据,追加到HDFS中去,
     如果想追加到hive本来的数据中去就把路径换成hive的路径)
     # 适用于表不断的有新数据插入
     
    sqoop import 
    --connect jdbc:mysql://master:3306/student 
    --username root 
    --password 123456 
    --table student_zeng 
    --target-dir /user/hive/warehouse/sqlhivetest.db/student_zeng/ 
    --split-by id 
    -m 1 
    --fields-terminated-by '	' 
    --incremental append 
    --check-column id 
    --last-value 3

    4、根据时间进行大量追加(不去重)

     1 追加  
     2 sqoop import 
     3 --connect jdbc:mysql://master:3306/student 
     4 --username root 
     5 --password 123456 
     6 --target-dir /user/hive/warehouse/sqlhivetest.db/student_zeng/ 
     7 --table student_zeng 
     8 --fields-terminated-by '	' 
     9 --check-column last_mod 
    10 --incremental lastmodified 
    11 --last-value "2019-12-19 20:57:16" 
    12 -m 1 
    13 --append 

    结果:但是我们发现有两个重复的字段

    5、往往开发中需要进行去重操作:sqoop提供了一个方法进行去重,内部是先开一个map任务将数据导入进来,然后再开一个map任务根据指定的字段进行合并去重

    #根据业务可能需要去重  -merge-key 就是做这个事
    
    sqoop import 
    --connect jdbc:mysql://master:3306/student 
    --username root 
    --password 123456 
    --target-dir /user/hive/warehouse/sqlhivetest.db/student_zeng/ 
    --table student_zeng 
    --fields-terminated-by '	' 
    --check-column last_mod 
    --incremental lastmodified 
    --last-value "2019-12-19 22:00:09" 
    -m 1 
    -merge-key id 

    结果:

     之前有重复的也进行合并去重操作,最后生成一个结果。

  • 相关阅读:
    捕获异常的两种方式Exception
    线程的随机性
    单例模式简单解析--Singleton 单例模式(懒汉方式和饿汉方式)
    LeetCode 116. 填充每个节点的下一个右侧节点指针
    LeetCode 129. 求根到叶子节点数字之和
    LeetCode 124. 二叉树中的最大路径和
    LeetCode 119. 杨辉三角 II
    LeetCode 118. 杨辉三角
    LeetCode 113. 路径总和 II
    LeetCode 114. 二叉树展开为链表
  • 原文地址:https://www.cnblogs.com/wyh-study/p/12079670.html
Copyright © 2011-2022 走看看