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命令引起的一个表的所有变化。
  • 相关阅读:
    LCS(最长公共子序列)
    如何利用MAXScript代码进行DNA双螺旋结构的创建
    如何在3ds MAX中进行宏脚本MacroScript的编写
    3dsmax:[5]maxscript是干什么的
    Visual MAXScript 工具
    3D MAXScript(1)
    如何写3DMAX的插件
    利用GitHub for Window 来进行项目的上传
    VS中的库
    软件测试作业
  • 原文地址:https://www.cnblogs.com/lintong-zf/p/14235079.html
Copyright © 2011-2022 走看看