Common Big Data Collection Tools and Their Core Features
This article reviews seven widely used big data collection tools—Flume, Fluentd, Logstash, Chukwa, Scribe, Splunk, and Scrapy—detailing their architectures, supported data sources, extensibility, and typical use cases for efficiently gathering and processing large‑scale data.
In the era of big data, efficiently collecting useful information from diverse sources is a foundational step for data-driven applications.
1. Flume
Flume is a distributed log‑collection system developed by Cloudera and now an Apache Top project. It gathers data from Console, RPC (Thrift‑RPC), Text files, UNIX Tail, Syslog, Exec commands, and more. Flume uses a multi‑master architecture; configuration data is stored in ZooKeeper for consistency and high availability, and masters synchronize via the Gossip protocol. Built with JRuby on the Java runtime, Flume forms a pipeline of agents that route events, supports sink failover and load balancing, and represents each event as Headers (metadata) plus Payload. An SDK allows custom development, and common clients include Avro, Log4J, Syslog, and HTTP Post.
2. Fluentd
Fluentd is an open‑source data‑collection framework written in C/Ruby that normalizes logs to JSON. Its rich plugin ecosystem enables collection from many systems and classification of logs, e.g., tailing a file and forwarding to MongoDB. Fluentd’s architecture mirrors Flume’s Source/Channel/Sink as Input/Buffer/Output, and it offers easy installation, small footprint, reliable buffering, and flexible plugins. Unlike Flume, Fluentd’s configuration is simpler, but it does not support Windows.
3. Logstash
Logstash is the "L" in the ELK (Elasticsearch‑Logstash‑Kibana) stack, written in JRuby and running on the JVM. A typical Logstash configuration defines Input, Filter, and Output sections. Below is a representative configuration:
input {
file {
type => "Apache-access"
path => "/var/log/Apache2/other_vhosts_access.log"
}
file {
type => "pache-error"
path => "/var/log/Apache2/error.log"
}
}
filter {
grok {
match => {"message" => "%(COMBINEDApacheLOG)"}
}
date {
match => {"timestamp" => "dd/MMM/yyyy:HH:mm:ss Z"}
}
}
output {
stdout {}
redis {
host => "192.168.1.289"
data_type => "list"
key => "Logstash"
}
}When Elasticsearch is part of the data system, Logstash is typically the preferred collector, and it is usually used together with Kibana and Elasticsearch as a complete stack.
4. Chukwa
Chukwa is an Apache open‑source data‑collection platform built on Hadoop HDFS and MapReduce (implemented in Java). It provides extensibility and reliability through Hadoop’s storage and processing layers, offering modules for Hadoop‑cluster log analysis, data visualization, analysis, and monitoring. Although the project is now inactive, it is suited for scenarios requiring flexible, dynamically controllable data sources, high‑performance scalable storage, and an architecture capable of analyzing massive collected data.
5. Scribe
Scribe, originally developed by Facebook, is a distributed log‑collection system (no longer maintained). It provides a scalable, fault‑tolerant solution for "distributed collection, unified processing" of logs. When the central storage network or machines fail, Scribe buffers logs locally or redirects them; once the storage recovers, it retransmits the buffered logs. Scribe is commonly paired with Hadoop/HDFS, where logs are pushed to HDFS and later processed by MapReduce jobs.
6. Splunk
Splunk is a commercial big‑data platform offering end‑to‑end data collection, storage, analysis, and visualization. Its distributed architecture consists of three roles: Search (search and extraction), Indexer (storage and indexing), and Forwarder (collection, cleansing, transformation, and forwarding to the Indexer). Splunk natively supports Syslog, TCP/UDP, spooling, and extensible inputs via custom plugins. The Splunk app marketplace provides ready‑made collectors for AWS, databases (DBConnect), etc. Search Head and Indexer support clustering for high availability and scalability, but Forwarder clustering is not available, so a Forwarder failure can interrupt data collection.
7. Scrapy
Scrapy is a Python‑based web‑crawling framework that provides a high‑level architecture for extracting structured data from websites. It offers extensible base spider classes (e.g., BaseSpider, SitemapSpider) and supports Web 2.0 crawling in its latest version. The Scrapy engine controls the entire data‑processing flow:
The engine opens a domain, the spider fetches the first URL.
The engine obtains the next URL from the spider and schedules it.
The scheduler provides the next page to the engine.
The engine sends the request through download middleware to the downloader.
After downloading, the response passes back through downloader middleware to the engine.
The engine forwards the response to spider middleware for processing.
The spider processes the response, yields items, and may generate new requests.
The engine pushes items into pipelines and sends new requests back to the scheduler.
Steps 2‑8 repeat until the scheduler is empty, ending the crawl.
These tools collectively cover a wide range of data‑collection scenarios, from log aggregation in Hadoop ecosystems to web crawling and commercial data platforms, helping practitioners choose the appropriate solution based on source type, scalability needs, and operational constraints.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Smart Sea Tide
Sharing cutting‑edge big data and AI technologies, with occasional lifestyle insights.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
