千家信息网

Heron ——将原来的storm更新到heron中

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,Twitter设计heron架构的时候,就是完全以兼容storm而设计的。所以以前的storm工程就可以很容易平移到heron中,需要做的就是调整tolopogy的Maven配置文件pom.xml。下
千家信息网最后更新 2024年12月12日Heron ——将原来的storm更新到heron中

Twitter设计heron架构的时候,就是完全以兼容storm而设计的。所以以前的storm工程就可以很容易平移到heron中,需要做的就是调整tolopogy的Maven配置文件pom.xml。

下面一步步来:

1. 下载Heron API的安装脚本

若在上一步已经把那些sh或者tar.gz都下载了,没下载的可在此处下载(https://github.com/twitter/heron/releases),这个就忽略。

  • heron-api-install-0.14.2-PLATFORM.sh

注:Mac下有darwin字符的sh文件

下载成功之后就可以使用--user 和--maven进行安装工作

$ ./heron-api-install-0.14.3-ubuntu.sh --user --maven--warning=no-timestampHeron API installer---------------------Installing jars to local maven repo.tar xfz /tmp/heron.P7Ui/heron-api.tar.gz -C /tmp/heron.P7Ui --warning=no-timestampHeron API is now installed!See http://heronstreaming.io/docs/getting-started for how to use Heron.heron.build.version : '0.14.3'heron.build.time : Sat Sep 10 01:04:00 PDT 2016heron.build.timestamp : 1473494660000heron.build.host : tw-mbp-kramasamyheron.build.user : kramasamyheron.build.git.revision : 71d5b256d779be73b37c50d2a58af8f00d618276heron.build.git.status : Clean

注:若是提示没有maven,那就使用apt-get命令安装一个maven

sudo apt-get install maven

安装完成后,就可以再本地的maven仓库里面看到heron的api内容

$ ls ~/.m2/repository/com/twitter/heronheron-apiheron-spiheron-storm

2. 将heron依赖加入pom.xml

将下面的语句加入到原来的storm工程的pom.xml文件里面

com.twitter.heron heron-api SNAPSHOT compilecom.twitter.heron heron-storm SNAPSHOT compile

3. 删除以前的storm依赖

将原工程pom.xml的storm依赖删除,例如:

org.apache.storm storm-core storm-VERSION provided

4. 删除Clojure plugin(非必须)

如果原storm工程中有依赖clojure plugin,那就删除。例如:

 com.theoryinpractise clojure-maven-plugin 1.3.12 true   src/clj  

5. 运行maven命令

$ mvn clean$ mvn compile$ mvn package

注:storm的distribute RPC特性在heron中已经不用了


6. 部署更新后的tolopogy(可选)

可以使用heron submit命令将已经编译的maven工程部署到本地的heron环境中,参考heron的例子

$ heron submit local \ # local表示本地运行 ~/.heron/examples/heron-examples.jar \ # topology的jar文件路径com.twitter.heron.examples.ExclamationTopology \ # topology的Java类 ExclamationTopology # topology的名字



0