GithubHelp home page GithubHelp logo

doytsujin / samza-hello-samza Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apache/samza-hello-samza

0.0 1.0 0.0 5.18 MB

Mirror of Apache Samza

License: Apache License 2.0

Shell 7.28% Java 81.23% Python 11.19% TSQL 0.30%

samza-hello-samza's Introduction

hello-samza

Hello Samza is a starter project for Apache Samza jobs.

About

Hello Samza is developed as part of the Apache Samza project. Please direct questions, improvements and bug fixes there. Questions about Hello Samza are welcome on the dev list and the Samza JIRA has a hello-samza component for filing tickets.

Instructions

The Hello Samza project contains example Samza applications of high-level API as well as low-level API. The following are the instructions to install the binaries and run the applications in a local Yarn cluster. See also Hello Samza and Hello Samza High Level API for more information.

1. Get the Code

Check out the hello-samza project:

git clone https://gitbox.apache.org/repos/asf/samza-hello-samza.git hello-samza
cd hello-samza

To build hello-samza with the latest Samza master, you can switch to the latest branch:

git checkout latest

This project contains everything you'll need to run your first Samza application.

2. Start a Grid

A Samza grid usually comprises three different systems: YARN, Kafka, and ZooKeeper. The hello-samza project comes with a script called "grid" to help you setup these systems. Start by running:

./bin/grid bootstrap

This command will download, install, and start ZooKeeper, Kafka, and YARN. It will also check out the latest version of Samza and build it. All package files will be put in a sub-directory called "deploy" inside hello-samza's root folder.

If you get a complaint that JAVA_HOME is not set, then you'll need to set it to the path where Java is installed on your system.

Once the grid command completes, you can verify that YARN is up and running by going to http://localhost:8088. This is the YARN UI.

3. Build a Samza Application Package

Before you can run a Samza application, you need to build a package for it. This package is what YARN uses to deploy your apps on the grid. Use the following command in hello-samza project to build and deploy the example applications:

./bin/deploy.sh

4. Run a Samza Application

After you've built your Samza package, you can start the example applications on the grid.

- High-level API Examples

Package samza.examples.cookbook contains various examples of high-level API operator usage, such as map, partitionBy, window and join. Each example is a runnable Samza application with the steps in the class javadocs, e.g PageViewAdClickJoiner.

Package samza.examples.wikipedia.application contains a small Samza application which consumes the real-time feeds from Wikipedia, extracts the metadata of the events, and calculates statistics of all edits in a 10-second window. You can start the app on the grid using the run-app.sh script:

./deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-application.properties

Once the job is started, we can tail the kafka topic by:

./deploy/kafka/bin/kafka-console-consumer.sh  --bootstrap-server localhost:9092 --topic wikipedia-stats

A code walkthrough of this application can be found here.

- Low-level API Examples

Package samza.examples.wikipedia.task contains the low-level API Samza code for the Wikipedia example. To run it, use the following scripts:

deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-feed.properties
deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-parser.properties
deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-stats.properties

Once the jobs are started, you can use the same kafka-console-consumer.sh command as in the high-level API Wikipedia example to check out the output of the statistics.

5. Run all the examples as Integration Test

Every example above are ran with a few messages as Integration test using TestRunner API. You can find all the testing samples in src/test/java. To run it use:

mvn clean package

Run Single example as test use:

mvn test -Dtest=<ClassName>

Contribution

To start contributing on Hello Samza first read Rules and Contributor Corner. Notice that Hello Samza git repository does not support git pull request.

samza-hello-samza's People

Contributors

bharathkk avatar cameronlee314 avatar capdaha avatar criccomini avatar dxichen avatar ept avatar icefury71 avatar imrenagi avatar jagadish-northguard avatar jagadish-v0 avatar jeffcjohnson avatar jghoman avatar jmakes avatar joestein avatar kgidley avatar navina avatar nickpan47 avatar omkreddy avatar pawaschhokra avatar prateekm avatar rmatharu avatar romannekhor avatar sanil15 avatar srinipunuru avatar staslos avatar steven-aerts avatar vishalkuo avatar weisong44 avatar xinyuiscool avatar yanfang724 avatar

Watchers

 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.