zoukankan      html  css  js  c++  java
  • 【大数据开发工程师】面试——Sqoop、Canal、Maxwell

    sqoop主要用来做离线任务,每天定时执行脚本。

    canal和maxwell主要用来做实时任务或拉链表,实时监控表的变化。

    Sqoop

    项目经验

    Hive中的Null在底层是以“N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用--input-null-string和--input-null-non-string两个参数。导入数据时采用--null-string和--null-non-string。

    canal

    原理:伪装成mysql master的从机。拷贝binlog的内容到本机。

    MySQL主从复制过程

    • Master主库将改变记录,写到二进制日志(binary log)中 
    • Slave从库向mysql master发送dump协议,将master主库的binary log events拷贝到它的中继日志(relay log);
    • Slave从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。

    maxwell

    抓取msql变化的原理也是基于binlog,但是它只有一个server把数据发送到消息队列或redis。

     Maxwell和canal工具对比

    • Maxwell没有canal那种server+client模式,只有一个server把数据发送到消息队列或redis。如果需要多个实例,通过指定不同配置文件启动多个进程。
    • Maxwell有一个亮点功能,就是canal只能抓取最新数据,对已存在的历史数据没有办法处理。而Maxwell有一个bootstrap功能,可以直接引导出完整的历史数据用于初始化,非常好用。
    • Maxwell不能直接支持HA,但是它支持断点还原,即错误解决后重启继续上次点儿读取数据。
    • Maxwell只支持json格式,而Canal如果用Server+client模式的话,可以自定义格式。
    • Maxwell比Canal更加轻量级。maxwell记录的每一行数据是一个SQL命令引起的一行变化,而canal记录的每一行数据是一个SQL命令引起的一个表的所有变化。
  • 相关阅读:
    《linux 必读》
    ldd ldconfig
    rpm 数据库
    /bin, /sbin & /usr/bin, /usr/sbin & /usr/local/bin, /usr/local/sbin & glibc
    POSIX
    CentOS 下载地址
    insert into TABLE by SELECT ...
    httpd 处理模型
    http 状态码
    IP地址 0.0.0.0 是什么意思?
  • 原文地址:https://www.cnblogs.com/lintong-zf/p/14235079.html
Copyright © 2011-2022 走看看