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命令引起的一个表的所有变化。
  • 相关阅读:
    pycharm激活(JetBrains IDEA 系列产品通用xx方法(license server))
    纯css美化下拉框、复选框以及单选框样式并用jquery获取到其被选中的val
    字符串替换
    jquery 倒计时效果
    js 数字前自动补零
    css 常用的绝对定位元素水平垂直居中的方法
    webapp中绝对定位/固定定位与虚拟键盘冲突的问题
    css 兼容各种iPhone
    使用 position:sticky 实现粘性布局
    jquery判断点击鼠标左、中、右键事件
  • 原文地址:https://www.cnblogs.com/lintong-zf/p/14235079.html
Copyright © 2011-2022 走看看