|
|
||
|---|---|---|
| documentation | ||
| gradle/wrapper | ||
| prometheus | ||
| src/main | ||
| .gitignore | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| build.gradle | ||
| docker-compose.yml | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| installAndRun.sh | ||
| settings.gradle | ||
| shutdownService.sh | ||
README.md
PDF Aggregation Service - Controller
The UrlsController is the central component of the PDF Aggregation Service, a distributed system designed for large-scale collection and processing of full-text content from the web.
This service acts as a coordinator, generating and distributing crawling assignments to a fleet of remote "Worker" nodes. It then orchestrates the retrieval, storage, and metadata processing of the collected content, leveraging a powerful data stack that includes Apache Impala, Parquet, and HDFS.
Key Features
- Distributed Crawling: Manages a fleet of remote workers to efficiently crawl and retrieve full-text content (PDFs and HTML).
- Bulk Import: Supports the ingestion of large, pre-existing datasets from various sources.
- Scalable Data Processing: Built on a foundation of Apache Impala and Parquet for efficient, large-scale data storage and querying.
- Asynchronous and Robust: Designed for high-throughput, asynchronous processing to handle long-running tasks without blocking.
- Comprehensive Monitoring: Exposes a rich set of metrics for real-time monitoring with Prometheus and Grafana.
Documentation
For a deeper understanding of the system, please refer to the following documents:
- Architecture: A detailed overview of the system's architecture and data flow.
- Configuration Guide: A comprehensive guide to configuring the application.
- Deployment and Operations Guide: Instructions on how to deploy and operate the service.
- API Guide: A detailed reference for the
UrlsControllerAPI endpoints. - Metrics Reference: A reference for the Prometheus metrics exposed by the application.
Implementation Notes
- Data Transfer: The service uses Facebook's Zstandard compression algorithm for efficient transfer of full-text files.
- File Naming Convention: Uploaded full-text files follow the naming scheme:
datasourceID/recordID::fileHash.pdf.