ElasticSearch学习笔记
Elasticsearch是一个基于Apache Lucene的全文检索和分析引擎,可以扩容到上百台服务器,处理PB级结构化/非结构化数据。
ES的应用场景举例:
- 支持在线搜索、自动完成(搜索建议)功能
- 作为ELK栈的一部分,收集、聚合、分析日志/事务数据
- 海…
基于EFK构建日志分析系统
Fluentd是一个C编写的开源的日志收集器,支持100+不同系统的日志收集处理。
定义Fluentd的输入,需要指定一个输入插件。例如:
1 2 3 4 5 6 7 |
<source> # 使用什么插件 @type http # 你可以这样推送日志:http://localhost:8888/tag.name?json={...} port 8888 bind 0.0.0.0 </source> |
定义了一个HTTP输入。Fluentd会在8888端口上监听,等待外部传入事件。事件的例子:
1 |
curl -i -X POST -d 'json={"action":"login","user":2}' http://localhost:8888/test.cycle |
source捕获到的Fluentd事件,交由Fluentd路由引擎处理。
多个filte…
阅读全文Apache Curator学习笔记
Apache Curator(音标[kjʊ(ə)'reɪtə])Framework是ZooKeeper的Keeper(动物园管理员的管理员)。它是一个Java库,提供了比ZooKeeper更加高层的API,更加易用、可靠。Curator的推荐的ZooK…
阅读全文Apache Drill学习笔记
Apache Drill是一个模式自由(Schema-free )的、低延迟的、分布式的、可扩容的SQL查询引擎,可以让你使用熟悉的SQL语法对各种非关系型数据库进行操作。Drill支持针对PB级别数据的即席查询。Drill支持大量NoSQL数据和文件系统…
阅读全文Apache Storm学习笔记
Apache Storm是一个分布式的实时计算系统,它能够可靠的对无边界的数据流进行处理。与Hadoop的批量处理方式不同,Storm对数据进行的是实时处理。Storm很简单,支持很多编程语言。
Storm的应用场景包括:实时分析、在线机器学习、持续计算…
阅读全文Kafka Streams学习笔记
当前比较流行的实时计算框架包括Apache Storm、Apache Spark等。这些框架的功能强大而全面,但是具有以下缺点:
- 复杂度高,应对某些简单的工作显得笨重
- 部署Storm、Spark等分布式框架需要预留集群支持,增加开发负担
Kafka Str…
阅读全文Apache Kafka学习笔记
Apache Kafka(音标/'ka:fka:/)是一个分布式的实时数据处理的基础平台,能够处理每秒百万条数据。它具有三大功能:
- 订阅/发布:类似于传统MOM的功能,将队列、主题合二为一
- 流处理:支持编写可扩容的流处理程序,对实时事件做出响应
- 存储:安全的…
OpenTSDB学习笔记
OpenTSDB是一个开源的、被广泛使用的时间序列数据库。它提供了一整套和监控有关的功能,可以用来构建分布式、可扩容的监控系统。使用OpenTSDB可以不损失统计精度的永久保存监控数据,统计精度可以达到毫秒级。OpenTSDB的底层是Hadoop/HBas…
阅读全文ZooKeeper学习笔记
ZooKeeper是Hadoop的子项目,实现高可靠的分布式协调服务。它可以提供分布式的配置、同步、命名、集群服务。ZooKeeper暴露了一系列简单的接口,具有Java、C语言绑定。
为了正确构建复杂的服务,ZooKeeper提供以下保证:
- 顺序一致…
MongoDB学习笔记
MongoDB是一个开源的文档数据库(Document Database),具有高性能、高可用性、自动化的可扩容性。
高性能的持久化能力,主要体现在:
- 对内嵌数据模型的支持,减少了数据库系统的I/O活动
- 支持索引,加快了查询速度。可以包含来自内嵌文档、数组的…