_____ _ _ | |
/ ____|| || | | |
| (___ | || |_ | |
\___ \ |__ _| | |
____) | | | | |
|_____/ |_| | |
You just created a new S4 project in <appDir>! | |
It follows a maven-like structure: | |
- the build file is at the root of the project | |
- sources are in src/main/java | |
We use gradle for building this project. | |
To build the project: | |
- "./gradlew" (from the root of the project, this calls the gradle script from the s4 installation) | |
An "s4" script has been created at the root of the project's directory. It calls the s4 script from your S4 installation. | |
To execute the application in a new S4 cluster (see the S4 wiki https://cwiki.apache.org/confluence/display/S4/ for more information): | |
1. start a ZooKeeper instance "./s4 zkServer" (./s4 zkServer -help provides a list of options) | |
2. define a logical cluster for your application "./s4 newCluster -cluster=<nameOfTheCluster> -nbTasks=<number of partitions> -flp=<a port number for the first node, other nodes use an increment on this initial port>" | |
3. start a node and attach it to the cluster "./s4 node -cluster=<nameOfTheCluster>" | |
4. package the application "./s4 s4r -a=<app class> -b=`pwd`/build.gradle <package name> | |
5. deploy (configure) the application "./s4 deploy -s4r=`pwd`/build/libs/<package name>.s4r -c=<nameOfTheCluster> -appName=<app name in Zookeeper>" | |
6. check the status of the S4 cluster "s4 status" | |
If you want to inject events from application 2 into application 1 on cluster 1: | |
- application 1 must define an input stream with a name (say: stream1) | |
- application 2 must define an output stream with the same name (stream1) | |
If you want to use a simple adapter process, listening to an external source, converting incoming data into S4 events, and sending that to S4 apps, you can define | |
your own app that extends the AdapterApp class, for instance: | |
./s4 deploy -appClass=hello.HelloInputAdapter -p=s4.adapter.output.stream=names -cluster=c2 -appName=adapter | |
Then in order to start a node and automatically using the classpath of the current project, use the "s4 adapter" command: | |
- ./s4 adapter -cluster=c2 | |