Giter Site home page Giter Site logo

leexhwhy / sparkler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uscdatascience/sparkler

0.0 2.0 0.0 4.06 MB

Spark-Crawler : Evolving Apache Nutch to run on Spark.

License: Apache License 2.0

Shell 5.42% Java 57.76% Scala 28.72% Python 1.99% HTML 0.92% JavaScript 5.19%

sparkler's Introduction

Sparkler

Build Status

A web crawler is a bot program that fetches resources from the web for the sake of building applications like search engines, knowledge bases, etc. Sparkler (contraction of Spark-Crawler) is a new web crawler that makes use of recent advancements in distributed computing and information retrieval domains by conglomerating various Apache projects like Spark, Kafka, Lucene/Solr, Tika, and Felix. Sparkler is an extensible, highly scalable, and high-performance web crawler that is an evolution of Apache Nutch and runs on Apache Spark Cluster.

NOTE:

Sparkler is being proposed to Apache Incubator. Review the proposal document and provide your suggestions here here Will be done later, eventually!

Notable features of Sparkler are as follows:

  • Provides Higher performance and fault tolerance: The crawl pipeline has been redesigned to take advantage of the caching and fault tolerance capability of Apache Spark.
  • Supports complex and near real-time analytics: The internal data-structure is an indexed store powered by Apache Lucene and has the functionality to answer complex queries in near real time. Apache Solr (Supporting standalone for a quick start and cloud mode to scale horizontally) is used to expose the crawler analytics via HTTP API. These analytics can be visualized using intuitive charts in Admin dashboard (coming soon).
  • Streams out the content in real-time: Optionally, Apache Kafka can be configured to retrieve the output content as and when the content becomes available.
  • Java Script Rendering Executes the javascript code in webpages to create final state of the page. The setup is easy and painless, scales by distributing the work on Spark. It preserves the sessions and cookies for the subsequent requests made to a host.
  • Extensible plugin framework: Apache Felix, an open source community implementation of Open Service Gateway Initiative (OSGi) is embedded under the hood of Sparkler to make it extensible with the plugins.
  • Universal Parser: Apache Tika, the most popular content detection, and content analysis toolkit that can deal with thousands of file formats, is used to discover links to the outgoing web resources and also to perform analysis on fetched resources.

Click here for quick start guide : https://github.com/uscdataScience/sparkler/wiki/sparkler-0.1

Requires

  • Apache Solr - (required at runtime) - config files (schema) are in conf/solr folder.
  • Apache Maven - (required to build)
  • Apache Kafka - (optional, to stream output)

Setup instructions https://github.com/uscdataScience/sparkler/wiki/sparkler-0.1#requirements

Running

If you don't want to build by hand there are a couple of ways to run Sparkler:

Docker build

Pre built Snap package

Build

To build this project, cd to the root directory of the sparkler and run the following command:

 mvn clean install

Note that this is a multi-module maven project with OSGI bundle support using Apache Felix. On success, the build produces sparkler-app/target/sparkler-app-xx.jar For detailed instuctions, visit the wiki page: Build and Deploy

Dashboard

Navigating/Diving into source code

This is a multi module maven project

Module Name Path Description Remarks
sparkler-api /sparkler-api This project defines contracts for plugins and provides common utilities. This should be shared by all plugins
sparkler-app /sparkler-app This project is the main application that runs on sparks and uses all plugins
sparkler-plugins /sparkler-plugins This project contains build configurations for all plugins

List of Plugins

Plugin Name Path Description Remarks
urlfilter-regex /sparkler-plugins/urlfilter-regex This plugin provides URL Filter extension An example plugin in OSGI bundle
fetcher-jbrowser /sparkler-plugins/fetcher-jbrowser This plugin use headless browser to fetch a URL An OSGI bundle which helps to fetch Javascript enabled pages

Contact Us

In case you have any questions or suggestions, please drop them at [email protected]

Website: http://irds.usc.edu

sparkler's People

Contributors

thammegowda avatar karanjeets avatar smadha avatar buggtb avatar rahulpalamuttam avatar sk-s-hub avatar chrismattmann avatar sujen1412 avatar giuseppetotaro avatar ldaume avatar gitter-badger avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.