Meepo
Meepo最开始是为了Mysql到Mysql的数据迁移开发的,今年年初对其进行了重构。
目前可以基本替代Sqoop完成每天凌晨将Mysql数据拷贝到HDFS上的需求,数据格式为Parquet+Snappy。
并且Meepo还提供了AVSC文件,方便Hive更新表结构(TBLPROPERTIES (‘avro.schema.url’=’hdfs://onlinecluster/xxxxxxxxxx))。
Meepo的Mysql数据表迁移功能也优化了很多:
-
支持基本字段类型的自动匹配转化
-
自动识别表结构和主键
-
支持同时使用N个Plugin
-
提供了ReplacePlugin,用于系统升级中常见的表字段值替换需求(查另外一张表,来决定替换成什么值)
这次重构中,还引入了Disruptor的Ringbuffer,作为数据缓冲区。
Ringbuffer强制了对象复用,大幅度减少了GC的频率,使得Meepo可以用更小的JVM来完成任务,性能也有一定的提升。
在我们的测试中,Meepo的吞吐能力一直在每秒6W行以上,极限可以达到每秒15W。
这次重构后的测试中,也找到了更多应该暴露的Metric指标,方便对Meepo进行调优。