写这篇博客的目的 让更多的人了解 阿里开源的MongoShake可以很好满足mongodb到kafka高性能高可用实时同步需求(项目地址:https://github.com/alibaba/MongoShake,下载地址:https://github.com/alibaba/MongoShake/releases).至此博客就结束了,你可以愉快地啃这个项目了.还是一起来看一下官方的描述: MongoShake is a universal data replication platform b…
写这篇博客的目的 让更多的人了解 阿里开源的MongoShake可以很好满足mongodb到kafka高性能高可用实时同步需求(项目地址:https://github.com/alibaba/MongoShake,下载地址:https://github.com/alibaba/MongoShake/releases).至此博客就结束了,你可以愉快地啃这个项目了.还是一起来看一下官方的描述: MongoShake is a universal data replication platform b…
环境说明 centos7(运行于vbox虚拟机) flume1.9.0(flume-ng-sql-source插件版本1.5.3) jdk1.8 kafka(版本忘了后续更新) zookeeper(版本忘了后续更新) mysql5.7.24 xshell 准备工作 flume安装 暂略,后续更新 flume简介 Apache Flume是一个分布式的.可靠的.可用的系统,用于有效地收集.聚合和将大量日志数据从许多不同的源移动到一个集中的数据存储.在大数据生态圈中,flume经常用于完成数据采集的…
一.安装前准备 1.mongo-connector(基于python)中间件 2.python-3.4.3.msi 3.Mongodb 4.Solr 二.配置Mongodb集群 1).配置replica set 我的MONGO_HOME为 F:\mongodb 目录树如下: -rs (d) |----db (d) mongo数据文件文件存放的目录 |----rs1 (d) rs1实例数据文件存放的目录 |----rs2 (d) rs2实例数据文件存放的目录 |----log (d) log文件存…
思路 每隔一段时间(比如说10秒)统计一次某topic的所有partition的最大offset值之和,这便是该topic的message总数. 然后除以间隔时间就可以粗略但方便得出 某topic的数据增长速率(即相应程序写kafka的速率) Kafka常用topic操作命令汇总 中有统计最大offset命令 # 最大offset bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --to…
前提 近段时间,业务系统架构基本完备,数据层面的建设比较薄弱,因为笔者目前工作重心在于搭建一个小型的数据平台.优先级比较高的一个任务就是需要近实时同步业务系统的数据(包括保存.更新或者软删除)到一个另一个数据源,持久化之前需要清洗数据并且构建一个相对合理的便于后续业务数据统计.标签系统构建等扩展功能的数据模型.基于当前团队的资源和能力,优先调研了Alibaba开源中间件Canal的使用. 这篇文章简单介绍一下如何快速地搭建一套Canal相关的组件. 关于Canal 简介 下面的简介和下一节的原理…
一.inotify+rsync实时同步 1.介绍         inotify-tools是一种强大的.细粒度的.异步的文件系统事件监控机制,可以用来监控文件系统的事件.inotify-tools是用c编写的,除了要求内核支持inotify外,不依赖于其他.inotify-tools提供两种工具,一是inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数. 2.实现原理 3.根据原理进行部署 ①查看系统是否支持inotify [roo…
概述 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Google Cloud Pub/Sub.文件或其它平台的应用程序.它的常见应用场景有ETL.维护缓存.收集表级别的dml指标.增量到搜索引擎.数据分区迁移.切库binlog回滚方案等. 特征  支持 SELECT * FROM table 的方式进行全量数据初始化  支持在主库发生failover后,自动恢复binlog…
1.实时同步概述 1.什么是实时同步, 只要当前目录发生变化则会触发一个事件,事件触发后将变化的目录同步至远程服务器. 2.为什么要实时同步, 保证数据的连续性, 减少人力维护成本, 解决nfs单点故障 3.实时同步实现原理, 实时同步需要借助 Inotify通知接口,用来监控目录的变化,如果监控的目录发生变更.则触发动作,这个动作可以是进行一次同步操作,或其他操作. 4.实时同步工具选择, 有sersync(√).inotify+rsync,通常我们会选择 sersync,因为 sersync…
大致架构 * 每个应用实例部署一个日志agent * agent实时将日志发送到kafka * storm实时计算日志 * storm计算结果保存到hbase storm消费kafka 创建实时计算项目并引入storm和kafka相关的依赖 <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>1.0.…
项目需求:最近涉及到数百万张图片从本地存储迁移到云存储,为了使完成图片迁移,并保证图片无缺失,业务不中断,决定采用实时同步,同步完后再做流量切换.在实时同步方案中进行了几种尝试. 方案1:rsync+inotify同步,最先想到的是此方案,先看下脚本 此前在多台服务器间同步代码就用此方法,基本上没问题,因为代码文件数并不多,但这次面对大量小文件时其缺陷暴露了,同步非常耗时,并且没不能做到实时同步.为什么呢?每次新增数据rsync都会对全目录扫描,对比文件差异,并且是全量同步,耗时很长,新增的数据…
一.Kafka集群 Kafka使用Zookeeper来维护集群成员(brokers)的信息.每个broker都有一个唯一标识broker.id,用于标识自己在集群中的身份,可以在配置文件server.properties中进行配置,或者由程序自动生成.下面是Kafka brokers集群自动创建的过程: 每一个broker启动的时候,它会在Zookeeper的/brokers/ids路径下创建一个临时节点,并将自己的broker.id写入,从而将自身注册到集群: 当有多个broker时,所有br…
基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具 支持一对一,一对多,多对一和多对多的数据传输方式. 一对一 - 一个mongodb的collection对应一个elasticsearch的index之间的数据同步 一对多 - 一个mongodb的collection对应多个elasticsearch的index之间的数据同步 多对一 - 多个mongodb的collection对应一个elasticsearch的index之间的数据同步 多对多 - 多个…
一.前言 因公司需要选用elasticsearch做全文检索,持久化存储选用的是mongodb,但是希望mongodb里面的数据发生改变可以实时同步到elasticsearch上,一开始主要使用elasticsearch v1.7.2的版本,mongo-river可以搞定这个问题.随着elasticsearch的升级,发现elasticsearch已经放弃了mongo-river,咋整......Google之后发现一神器mongo-connector,国外大神用python写的工具而且Mong…
环境说明 centos7(运行于vbox虚拟机) flume1.9.0(自定义了flume连接mongodb的source插件) jdk1.8 kafka(2.11) zookeeper(3.57) mongoDB4.0.0(无密码) xshell 7 自定义flume插件 由于flume对数据库的支持欠缺,flume的source组件中,没有组件适用于连接关系型数据库或非关系型数据库. 对于关系型数据库(RDB),github中开源插件flume-ng-sql-source被广泛用于对接RDB…
一.故事 最近随着搞活动比较频繁导致数据库出现了波动,后端日志总是报数据库连接和读取的问题.由于我设置的是读写分离(伪的,通过设置副本集的读取策略实现的,设置的db.getMongo().setReadPref(),共有如下几个参数: One of the following read preference modes: primary, primaryPreferred, secondary, secondaryPreferred, or nearest.详细的介绍可以进链接了解.我们采用的是…
一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中,直接向Solr服务发送请求,返回xml.json等形式的内容,使得对数据的使用更灵活. 对于MongoDB与Solr的描述不在这里阐释了,本文旨在给大家提供整个Solr与MongoDB接合的方法,实现实时的增量索引. MongoDB的官网:http://www.mongodb.org/ Solr项目的主页:http://lucene.apac…
Solr与MongoDB集成,实时增量索引 一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中,直接向Solr服务发送请求,返回xml.json等形式的内容,使得对数据的使用更灵活. 对于MongoDB与Solr的描述不在这里阐释了,本文旨在给大家提供整个Solr与MongoDB接合的方法,实现实时的增量索引. MongoDB的官网:http://www.mongodb.org/ Solr项目…
投资界有一句至理名言——“不要把鸡蛋放在同一个篮子里”.说的是投资需要分解风险,以免孤注一掷失败之后造成巨大的损失. 转发来自 如何利用MongoDB实现高性能,高可用的双活应用架构?http://developer.51cto.com/art/201803/568856.htm [51CTO.com原创稿件]投资界有一句至理名言——“不要把鸡蛋放在同一个篮子里”.说的是投资需要分解风险,以免孤注一掷失败之后造成巨大的损失. 随着企业服务窗口的不断增加,业务中断对很多企业意味着毁灭性的灾难,因此…
1) mongodb查看连接数: db.serverStatus().connections; 2) mongodb查看同步时间: db.printSlaveReplicationInfo();  %%查看从服务器上的同步时间 3) mongodb查看oplog分磁盘空间: db.printReplicationInfo();        %%查看oplog分配磁盘空间 4)mongodb 修改数据表名: > db.collection.renameCollection("collect…
Flume和Kafka完成实时数据的采集 写在前面 Flume和Kafka在生产环境中,一般都是结合起来使用的.可以使用它们两者结合起来收集实时产生日志信息,这一点是很重要的.如果,你不了解flume和kafka,你可以先查看我写的关于那两部分的知识.再来学习,这部分的操作,也是可以的. 实时数据的采集,就面临一个问题.我们的实时数据源,怎么产生呢?因为我们可能想直接获取实时的数据流不是那么的方便.我前面写过一篇文章,关于实时数据流的python产生器,文章地址:http://blog.csdn…
Logstash是一个开源数据收集引擎,具有实时管道功能.Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地,logstash丰富的插件(logstash-input-jdbc,logstash-input-kafka,logstash-input-rabbitmq,logstash-input-flie,logstash-input-syslog等,github地址: https://github.com/logstash-plugins) 1.logs…
好久没有写过Blog, 每天看着开源的Java社区流口水, 心里满不是滋味. 终于等到了今年六月份 dotnet core 的正式发布, 看着dotnet 社区也一步一步走向繁荣, 一片蒸蒸日上的大好景象. 不在绑定Windows, 相信众位dotneter的春天就要来了 废话不多说, 早就对dotnet core 跃跃欲试, 手头一个新项目也正计划使用dotnet core来开发. 正好自己做做调研, 就与大家分享一点使用MongoDB的经验. 首先, 安装VS Code, 并安装C#插件,…
Tapdata 是由深圳钛铂数据有限公司研发的一款实时数据处理及服务的平台产品,企业可以使用 Tapdata 快速构建数据中台和实时数仓, Tapdata 提供了一站式的解决方案,包括实时数据采集.数据融合以及数据发布等功能和能力. Tapdata 专注于实时数据的处理技术,在数据库迁移和同步方面,Tapdata 的表现非常优秀,实时.多元.异构,尤其在关系数据库到非关系数据库之间的双向同步方面,无论是从操作上,还是效率上,都体现了业界领先的水平. 本文重点阐述 Tapdata 在数据库实时同步…
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制. 高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病. 高性能,Nosql通过简单的key-value方式获取数据,非常快速.还有NoSQL的Cache是记录级的,是一种细粒度的Cache,…
1.1 第一个里程碑:安装sersync软件 1.1.1 将软件上传到服务器当中并解压 1.上传软件到服务器上 rz -E 为了便于管理上传位置统一设置为 /server/tools 中 2.解压软件包 [root@backup sersync_installdir_64bit]# tree . └── sersync ├── bin │   └── sersync ├── conf │   └── confxml.xml └── logs 1.1.2 二进制包安装方法 二进制包安装软件方法(绿…
业务背景 技术选型 Kafka Producer SparkStreaming 接收Kafka数据流 基于Receiver接收数据 直连方式读取kafka数据 Direct连接示例 使用Zookeeper维护KafkaOffset示例 SparkStreaming 数据处理 调优 合理的批处理时间(batchDuration) 合理的Kafka拉取量(maxRatePerPartition重要) 缓存反复使用的Dstream(RDD) 设置合理的GC 设置合理的CPU资源数 设置合理的paral…
前言 Elastic Stack 提供 Beats 和 Logstash 套件来采集任何来源.任何格式的数据.其实Beats 和 Logstash的功能差不多,都能够与 Elasticsearch 产生协同作用,而且 logstash比filebeat功能更强大一点,2个都使用是因为:Beats 是一个轻量级的采集器,支持从边缘机器向 Logstash 和 Elasticsearch 发送数据.考虑到 Logstash 占用系 统资源较多,我们采用 Filebeat 来作为我们的日志采集器.并且…
一.概述 1.Rsync+Sersync 是什么? 1)Sersync使用c++编写基于inotify开发的触发机制: 2)Sersync可以监控所监听的目录发生的变化(包括新建.修改.删除),具体到一个文件名或目录名,然后触发rsync同步,只同步发生改变的文件或目录.如果只是目录下的文件发生变化,则只会同步变化的文件而不会同步目录.只有目录本身发生变化的时候才会同步目录. 3)自带crontab功能,只需在 xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次.无需再额外配置cron…
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制. 高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病. 高性能,Nosql通过简单的key-value方式获取数据,非常快速.还有NoSQL的Cache是记录级的,是一种细粒度的Cache,…