S4部署及使用

S4的部署及使用也是很方便的,具体可以参见 https://cwiki.apache.org/confluence/display/S4/S4+piper+walkthrough

下面将简单摘录其中的一些内容。

S4目前并没有发布的包,故需要自已下载源代码包去build。

  • Install S4

1.下载代码。安装git后,使用该命令:

    git clone https://git-wip-us.apache.org/repos/asf/incubator-s4.git

    或者 git clone git://git.apache.org/incubator-s4.git


2. 编译并安装S4,在S4目录incubator-s4下执行命令:

    ./gradlew install -DskipTests

3. build启动脚本

    ./gradlew s4-tools:installApp

  • 启动一个新的App。

1. 创建一个新的app。使用-parentDir指定project放置的位置。这里采用/tmp目录。

    S4:incubator-s4$ ./s4 newApp myApp -parentDir=/tmp

2. 可以看到在生成的project文件夹下的如下文件:

   build.gradle

   gradlew 这个是s4自己再封装后的脚本,里面包含了很多s4的命令

   s4 s4脚本文件。支持如deploy cluster, app,起动node等task。

  src 源代码文件,是maven-like的结构。


可以具体看一下src中的示例代码,比较简单,主要是实现onEvent方法,还有给出keyFinder的实现。

  • 运行示例App

1. 部署cluster。

    1)启动zookeeper。

        S4:incubator-s4$ ./s4 zkServer

    2) 部署一个cluster。这里取名为cluster1。 -nbTasks指定partition的数目,也即将运行的节点数。 -flp指听监听端口的起始端口号,这里从12000开始。

        S4:myApp$ ./s4 newCluster -c=cluster1 -nbTasks=2 -flp=12000

这里上面两步也可以合为一步,采用如下命令即可:

S4:incubator-s4$ ./s4 zkServer -clusters=c=cluster1:flp=12000:nbTasks=2

   3)启动相应的节点。上述命令中指定了cluster1含两个task。故而这里启动两个。

运行S4:myApp$ ./s4 node -c=cluster1

在另一台机器上或在另一个shell上再执行同样的命令。

这样两个节点就启动了。


2.build, package并提交此app到cluster1上。

S4:myApp$ ./s4 deploy -appName=myApp -c=cluster1 -b=`pwd`/build.gradle -a=hello.HelloApp


这时从起动的两个node的控制台上也可以看到相应的app被检测,下载,加载以及启动的日志信息。


3.可以采用./s4 status来查看运行的状态信息。


s4还提供了一个adapter工具用于向示例的app发送消息,具体可以参照上面给出的网页。

你可能感兴趣的:(git,脚本,Build)