(http://javasoze.github.com/chirper/)
Chirper is a real time tweet search engine (written in Scala) using open source technology built by the LinkedIn SNA team:
- Twitter Streamer
- Kafka - Distributed Messaging System
- Voldemort - Distribute Key/Value Store
- Sensei - Distributed Realtime Faceted Search System
Although the amount of code is minimal, the system can scale horizontally infinitely by leveraging the distributed systems above. See this blog post on design considerations.
From the top level directory, e.g. ~/chirper
- sbt update (do this once to setup the probject)
- Make sure your twitter username/password is set in the config file
- sbt run
You will see a list of classes that ca be run:
Multiple main classes detected, select one to run:
[1] com.linkedin.chirper.streamer.ChirpStream
[2] com.linkedin.chirper.services.ZookeeperRunner
[3] com.linkedin.chirper.services.KafkaRunner
[4] com.linkedin.chirper.services.VoldemortRunner
[5] com.linkedin.chirper.search.ChirpSearchNode
Enter number:
Select a class to run (you'll need to run one per console window)
The order of class to be run are:
- [2] - Zookeeper
- [3] - Kafka
- [4] - Voldemort
- [1] - Streamer
- [5] - Search Node
Each of the components are pre-configured, details see configs.
The last thing to run is a Restful servlet that interacts with the system (Comes with a beautiful UI):
chirper$ sbt
[info] Building project Chirper 1.0 against Scala 2.8.0
[info] using ChirperStreamerProject with sbt 0.7.4 and Scala 2.7.7
> jetty-run
Now you can point to: