All Projects → mysql-time-machine → replicator

mysql-time-machine / replicator

Licence: Apache-2.0 license
MySQL Replicator. Replicates MySQL tables to Kafka and HBase, keeping the data changes history in HBase.

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to replicator

MySqlCdc
MySQL/MariaDB binlog replication client for .NET
Stars: ✭ 71 (+73.17%)
Mutual labels:  cdc, binlog
mizo
Super-fast Spark RDD for Titan Graph Database on HBase
Stars: ✭ 24 (-41.46%)
Mutual labels:  hbase
Hbaseclient
HBase客户端数据管理软件
Stars: ✭ 135 (+229.27%)
Mutual labels:  hbase
Bigdata Playground
A complete example of a big data application using : Kubernetes (kops/aws), Apache Spark SQL/Streaming/MLib, Apache Flink, Scala, Python, Apache Kafka, Apache Hbase, Apache Parquet, Apache Avro, Apache Storm, Twitter Api, MongoDB, NodeJS, Angular, GraphQL
Stars: ✭ 177 (+331.71%)
Mutual labels:  hbase
Technology Talk
汇总java生态圈常用技术框架、开源中间件,系统架构、数据库、大公司架构案例、常用三方类库、项目管理、线上问题排查、个人成长、思考等知识
Stars: ✭ 12,136 (+29500%)
Mutual labels:  hbase
Imposter
Scriptable, multipurpose mock server.
Stars: ✭ 187 (+356.1%)
Mutual labels:  hbase
Spring Boot Quick
🌿 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等📌
Stars: ✭ 1,819 (+4336.59%)
Mutual labels:  hbase
Lidea
大型分布式系统实时监控平台
Stars: ✭ 28 (-31.71%)
Mutual labels:  hbase
Node Hbase
Asynchronous HBase client for NodeJs using REST
Stars: ✭ 226 (+451.22%)
Mutual labels:  hbase
Hbase Doc Zh
📖 HBase 中文参考指南
Stars: ✭ 164 (+300%)
Mutual labels:  hbase
Bigdata docker
Big Data Ecosystem Docker
Stars: ✭ 161 (+292.68%)
Mutual labels:  hbase
Camellia
camellia framework by netease-im. provider: 1) redis-client; 2) redis-proxy(redis-sentinel/redis-cluster); 3) hbase-client; 4) others
Stars: ✭ 146 (+256.1%)
Mutual labels:  hbase
Gimel
Big Data Processing Framework - Unified Data API or SQL on Any Storage
Stars: ✭ 216 (+426.83%)
Mutual labels:  hbase
Awesome Hbase
A curated list of awesome HBase projects and resources.
Stars: ✭ 140 (+241.46%)
Mutual labels:  hbase
phoenix
Apache Phoenix / Hbase Spring Boot Microservices
Stars: ✭ 23 (-43.9%)
Mutual labels:  hbase
Gaffer
A large-scale entity and relation database supporting aggregation of properties
Stars: ✭ 1,642 (+3904.88%)
Mutual labels:  hbase
Hbase Connectors
Apache HBase Connectors
Stars: ✭ 153 (+273.17%)
Mutual labels:  hbase
Sparkstreaming
💥 🚀 封装sparkstreaming动态调节batch time(有数据就执行计算);🚀 支持运行过程中增删topic;🚀 封装sparkstreaming 1.6 - kafka 010 用以支持 SSL。
Stars: ✭ 179 (+336.59%)
Mutual labels:  hbase
xdu-cloudcourse-web
西电云计算课程大作业Web端代码示例
Stars: ✭ 26 (-36.59%)
Mutual labels:  hbase
NoSQLDataEngineering
NoSQL Data Engineering
Stars: ✭ 25 (-39.02%)
Mutual labels:  hbase

MySQL Replicator

Replicates data changes from MySQL binlog to HBase or Kafka. In case of HBase, preserves the previous data versions. HBase storage is intended for auditing and analysis of historical data. In addition, special daily-changes tables can be maintained in HBase, which are convenient for fast and cheap imports from HBase to Hive. Replication to Kafka is intended for easy real-time access to a stream of data changes.

Intro

This readme file provides basic introduction on how to get started. For more details, refer to official documentation at mysql-time-machine.

Building required Docker images

  1. Run mvn clean package from the root of the replicator repository to build the MySQL Replicator distribution that will be used later;
  2. Copy the distribution file to the images/replicator_testing/input/replicator/ directory inside the docker repository;
  3. Run container_build.sh script from the images/replicator_testing/ directory inside the docker repository;
  4. Run docker images to verify that replicator-testing image has been built successfully;

Getting Started with MySQL Replicator

Replicator assumes that there is a pre-installed environment in which it can run. This environment consists of:

  • MySQL Instance
  • Zookeeper Instance
  • Graphite Instance (or none in case of console metrics reporter)
  • Target Datastore Instance (Kafka, HBase, or none in case of STDOUT)

Easiest way to test drive the replicator is to use docker to locally create this needed environment. In addition to docker you will need docker-compose installed locally.

git clone https://github.com/mysql-time-machine/docker.git
cd docker/docker-compose/replicator_testing

Start all containers (mysql, kafka, graphite, replicator, zookeeper)

  ./run_all

Now, in another terminal, you can connect to the replicator container

 ./attach_to_replicator
 cd /replicator

This folder contains:

  1. different utility scripts to setup and run the replicator
  2. replicator configuration file
  3. log configuration file

There are the steps to initialize the environemnt and start the replication with latest 0.16 version:

 ./00_setup   # will unznip the jars from distribution
 ./01_seed    # will initialize mysql with random data
 ./02_run_016 # will start the replication

Random data in the seed step has been inserted in pre-created database 'test' in precreated table 'sometable'. The provided mysql instance is configured to use RBR and binlogs are active.

  mysql --host=mysql --user=root --pass=mysqlPass

  mysql> use test;
  mysql> show tables;
  +----------------+
  | Tables_in_test |
  +----------------+
  | sometable      |
  +----------------+
  1 row in set (0.00 sec)

As the replication is running, you can observe the replication statistics at graphite dashboard: http://localhost/dashboard/

PACKAGING

Packaging the project is really simple with Maven

mvn clean package

Will generate a tar.gz distribution as output. The distribution will contain all dependencies.

DEPLOY

To deploy a new version to Maven central it's enough executing

mvn clean deploy -P release

If previous step didn't work is probably because you don't have a SonaType account or a published GPG key. Follow these steps:

  1. Create a Sonatype Account
  2. Create a PGP Signature

Now you should be in conditions to deploy the project.

AUTHOR

Bosko Devetak [email protected]

CONTRIBUTORS

Ashwin Konale[akonale]

Carlos Tasada [ctasada]

Dmitrii Tcyganov [dtcyganov]

Evgeny Dmitriev [dmitrieveu]

Fabricio Damasceno [forlando]

Gaurav Kohli [gauravkohli]

Greg Franklin [gregf1]

Islam Hassan [ishassan]

Mikhail Dutikov [mikhaildutikov]

Muhammad Abbady [muhammad-abbady]

Philippe Bruhat (BooK) [book]

Pavel Salimov [chcat]

Pedro Silva [pedros]

Raynald Chung [raynald]

Rares Mirica [mrares]

Steve Aurigema [steveauri]

ACKNOWLEDGMENT

Replicator was originally developed for Booking.com. With approval from Booking.com, the code and specification were generalized and published as Open Source on github, for which the author would like to express his gratitude.

COPYRIGHT AND LICENSE

Copyright (C) 2015, 2016, 2017, 2018, 2019 by Author and Contributors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].