Pinterest Secor

Secor 是一项实现 Kafka 日志持久化的服务。「Secor is a service implementing Kafka log persistence」

  • Owner: pinterest/secor
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart







Pinterest Secor

Build Status

Secor is a service persisting Kafka logs to Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage and Openstack Swift.

Key features

  • strong consistency: as long as Kafka is not dropping messages (e.g., due to aggressive cleanup policy) before Secor is able to read them, it is guaranteed that each message will be saved in exactly one S3 file. This property is not compromised by the notorious temporal inconsistency of S3 caused by the eventual consistency model,
  • fault tolerance: any component of Secor is allowed to crash at any given point without compromising data integrity,
  • load distribution: Secor may be distributed across multiple machines,
  • horizontal scalability: scaling the system out to handle more load is as easy as starting extra Secor processes. Reducing the resource footprint can be achieved by killing any of the running Secor processes. Neither ramping up nor down has any impact on data consistency,
  • output partitioning: Secor parses incoming messages and puts them under partitioned s3 paths to enable direct import into systems like Hive. day,hour,minute level partitions are supported by secor
  • configurable upload policies: commit points controlling when data is persisted in S3 are configured through size-based and time-based policies (e.g., upload data when local buffer reaches size of 100MB and at least once per hour),
  • monitoring: metrics tracking various performance properties are exposed through Ostrich, Micrometer and optionally exported to OpenTSDB / statsD,
  • customizability: external log message parser may be loaded by updating the configuration,
  • event transformation: external message level transformation can be done by using customized class.
  • Qubole interface: Secor connects to Qubole to add finalized output partitions to Hive tables.

Release Notes

Release Notes for past versions can be found in RELEASE.md.

Setup/Configuration Guide

Setup/Configuration instruction is available in README.setup.md.

Secor configuration for Kubernetes/GKE environment

Extra Setup instruction for Kubernetes/GKE environment is available in README.kubernetes.md.

Detailed design

Design details are available in DESIGN.md.

License

Secor is distributed under Apache License, Version 2.0.

Maintainers

Contributors

Companies who use Secor

Help

If you have any questions or comments, you can reach us at secor-users@googlegroups.com

Main metrics

Overview
Name With Ownerpinterest/secor
Primary LanguageJava
Program languageMakefile (Language Count: 6)
Platform
License:Apache License 2.0
所有者活动
Created At2014-04-15 22:26:44
Pushed At2025-07-10 02:58:06
Last Commit At2022-05-03 10:10:24
Release Count14
Last Release Namev0.29 (Posted on )
First Release Namev0.15 (Posted on )
用户参与
Stargazers Count1.9k
Watchers Count66
Fork Count539
Commits Count3.3k
Has Issues Enabled
Issues Count277
Issue Open Count29
Pull Requests Count1477
Pull Requests Open Count233
Pull Requests Close Count849
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
JavaScript

gestalt

A set of React UI components that supports Pinterest’s desig...
Objective-C

PINRemoteImage

A thread safe, performant, feature rich image fetcher
Go

bender

An easy-to-use library for creating load testing application...
Objective-C

PINCache

Fast, non-deadlocking parallel object cache for iOS, tvOS an...
Python

pymemcache

A comprehensive, fast, pure-Python memcached client.
DevOps

Teletraan部署服务

Teletraan 是 Pinterest 的部署系统。「Teletraan is Pinterest's deploy...
未分类

ktlint

An anti-bikeshedding Kotlin linter with built-in formatter
大数据和分析

Querybook

Querybook 是一款大数据查询用户界面,结合了拼接表元数据和简单的 notebook 界面。『Querybook ...