精华内容
下载资源
问答
  • 网上很多文件使用 lein 编译 storm 源码,但是我下载的版本 apache-storm-0.9.2-incubating 中没有lein 工程文件,而是有 pom.xml,可以使用maven 编译。 在storm 工程的最上层目录执行: mvn package 可能会碰到...

    网上很多文件使用 lein 编译 storm 源码,但是我下载的版本 apache-storm-0.9.2-incubating 中没有lein 工程文件,而是有 pom.xml,可以使用maven 编译。

    在storm 工程的最上层目录执行: mvn package -DskipTests=true

    可能会碰到错误如下描述(jackson-core-2.0.6 只是一个例子):

    Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.2.1:process (default) on project storm: Failed to resolve dependencies for one or more projects in the reactor. Reason:Unable to get dependency information for com.fasterxml.jackson.core:jackson-core:jar:2.0.6: Failed to retrieve POM for com.fasterxml.jackson.core:jackson-core:jar:2.0.6:Could not transfer artifact com.fasterxml.jackson.core:jackson-core:pom:2.0.6 from/to central (http://repo1.maven.org/maven2/):Access denied to: http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.0.6/jackson-core-2.0.6.pom , ReasonPhrase:Forbidden.

    原因可能是网络问题,不知道为什么浏览器可以访问,但是mvn 却没办法下载(正真原因仍不明)。

    解决方案:删除文件 ~/repository/com/fasterxml/jackson/core/jackson-core/2.0.6/jackson-core-2.0.6.pom.lastUpdated(路径可能不同,可以使用 find 查找)

    然后手工下载: jackson-core-2.0.6.jar 与 jackson-core-2.0.6.pom 放到原jackson-core-2.0.6.pom.lastUpdated所在目录下。

    完成后再次执行mvn 命令即可。


    另一个方案可参考:

    http://blog.csdn.net/jonson123654/article/details/10364883



    展开全文
  • Storm starter ),即Storm安装教程 中所运行的实例(storm-starter-topologies-0.9.6.jar),该入门代码位于 /usr/local/storm/examples/storm-starter/ 中,包含多个例子,对于学习 Storm 很有帮助。同时官方也有...

    Storm 官方提供了入门代码( Storm starter ),即Storm安装教程 中所运行的实例(storm-starter-topologies-0.9.6.jar),该入门代码位于 /usr/local/storm/examples/storm-starter/ 中,包含多个例子,对于学习 Storm 很有帮助。同时官方也有给出了详细的使用说明(上述目录下的 README.markdown 文件),本教程基本是按照官方使用说明来介绍如何使用 Maven 来编译代码,以运行于 Storm 中。

    Maven介绍

    Maven 是现在 Java 社区中最强大的项目管理和项目构建工具。我们在开发项目的过程中,会使用一些开源框架、第三方的工具等等,这些都是以 jar 包的方式被项目所引用,并且有些 jar 包还会依赖其他的 jar 包,我们同样需要添加到项目中,所有这些相关的 jar 包都会作为项目的依赖。通常,一个 Java EE 项目所依赖的 jar 包会有很多。然而,这还并非是主要问题,在管理这些 jar 包过程中,jar 包的版本往往是最令人头疼的问题。选择一个 jar 包的版本,需要考虑它所依赖的 jar 包是否支持这个版本,并且还需要确认依赖它的 jar 包能不能对这个版本兼容,难以进行部署与管理。

    Maven 的出现,解决了开发过程中的这一难题。它可以对项目依赖的 jar 包进行管理,可以让你的项目保持基本的依赖,排除冗余 jar 包,并且可以让你非常轻松的对依赖的 jar 包进行版本升级。而这些仅仅是 Maven 最基本的功能,它可以在这基础上对项目进行清理、编译、测试、打包、发布等等构建项目的工作。

    Maven 是通过 pom.xml (Project Object Model,项目对象模型)来对项目进行配置的,可以查看 storm-starter 目录下的 pom.xml 来查看运行该入门代码所需的各种 jar 包。

    Maven安装

    Maven的官方下载地址为 http://maven.apache.org/download.cgi ,直接下载地址为: http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gzhttp://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

    下载后执行如下命令进行安装:

    sudo tar –zxf ~/下载/apache-maven-3.3.9-bin.tar.gz –C /usr/local/
    cd /usr/local
    sudo mv apache-maven-3.3.9-bin maven
    sudo chown -R hadoop:Hadoop ./maven   # hadoop为你使用的用户名
    

    安装后便可使用(需要配置好 JDK 1.7 环境),为方便,我们将 maven 命令加入 PATH 变量中。执行 vim ~/.bashrc ,在最后面加上一行 export PATH=/usr/local/maven:$PATH ,如下图所示。

    将Maven加入PATH中

    保存文件后执行 source ~/.bashrc ,接着执行 mvn –v 检验,安装成功的话会显示如下图内容:

    检验Maven是否安装成功

    编译、运行代码

    在此之前请先开启 Storm (即开启 zookeeper,nimbus 和 supervisor)。

    接着我们来使用 maven 编译、运行 Storm starter。我们只需要进入 storm starter 所在目录,再执行 mvn 命令即可。在此之前,请先确定系统处于联网状态,因为在编译过程中需要下载不少依赖包。

    cd /usr/local/storm/examples/storm-starter
    mvn compile exec:java -Dstorm.topology=storm.starter.WordCountTopology
    

    mvn 命令需要在项目的根目录中运行,即在 storm-starter 目录中运行,该命令会查找当前目录下的 pom.xml 文件。

    首次运行需要下载较多东西,如下图所示,请耐心等待。如果遇到网络错误,可以多试几次。

    首次运行需要下载较多依赖包

    如果遇到网络错误,导致有些依赖包无法下载或下载不完整,则会提示如下图的 ERROR 信息(Failed to execute goal on project storm-starter: Could not resolve dependencies for project org.apache.storm:storm-starter:jar:0.9.6: The following artifacts could not be resolve…),此时可以重新运行上述代码再试几次(写这篇教程时,我执行了3次,一共耗费半小时才成功)。

    Maven下载依赖包时可能会出现网络错误

    编译成功后,紧接着就会在 Storm 中运行,我们能看到不断输出的 INFO 信息。待执行完毕后,待执行完毕后,我们可以再运行一次,执行如下代码,用 grep 命令进行过滤:

    mvn compile exec:java -Dstorm.topology=storm.starter.WordCountTopology | grep 'Thread-[0-9]*-count'
    

    此时不需要再下载这么多东西,编译很快完成。我们只输出单词统计信息,可以看到输出结果与Storm安装教程 中运行实例时是一致的,说明编译正确。

    WordCount输出结果

    打包代码

    我们也可以将代码打包成 jar,打包后可以直接提交到 Storm 中运行。执行如下命令:

    mvn package
    

    打包完成后,会在 target 文件中生成 storm-starter-0.9.6.jar 和 storm-starter-0.9.6-with-dependencies.jar,就可以把 jar 包提交到 Storm 中运行了。

    /usr/local/storm/bin/storm jar ./target/storm-starter-0.9.6.jar storm.starter.WordCountTopology
    

    后续我们编写自己的代码时,建议使用 maven 来方便的编译、运行代码。另外, 官方使用说明 中有更为详细的一些说明,如在 Intellij 中运行 Storm starter,有需要的可以自行查看。

    总的来说,Storm starter 提供了很好的代码(源代码是在 storm-starter/src/jvm/storm/starter/ 中),例如 RollingTopWords ,给我们自己编写 Storm 代码提供了一个很好的借鉴。


    Storm 官方提供了入门代码(Storm starter),即 Storm安装教程 中所运行的实例(storm-starter-topologies-0.9.6.jar),该入门代码位于 /usr/local/storm/examples/storm-starter/ 中,包含多个例子,对于学习 Storm 很有帮助。同时官方也有给出了详细的使用说明(上述目录下的 README.markdown 文件),本教程基本是按照官方使用说明来介绍如何使用 Maven 来编译代码,以运行于 Storm 中。

    Maven介绍

    Maven 是现在 Java 社区中最强大的项目管理和项目构建工具。我们在开发项目的过程中,会使用一些开源框架、第三方的工具等等,这些都是以 jar 包的方式被项目所引用,并且有些 jar 包还会依赖其他的 jar 包,我们同样需要添加到项目中,所有这些相关的 jar 包都会作为项目的依赖。通常,一个 Java EE 项目所依赖的 jar 包会有很多。然而,这还并非是主要问题,在管理这些 jar 包过程中,jar 包的版本往往是最令人头疼的问题。选择一个 jar 包的版本,需要考虑它所依赖的 jar 包是否支持这个版本,并且还需要确认依赖它的 jar 包能不能对这个版本兼容,难以进行部署与管理。

    Maven 的出现,解决了开发过程中的这一难题。它可以对项目依赖的 jar 包进行管理,可以让你的项目保持基本的依赖,排除冗余 jar 包,并且可以让你非常轻松的对依赖的 jar 包进行版本升级。而这些仅仅是 Maven 最基本的功能,它可以在这基础上对项目进行清理、编译、测试、打包、发布等等构建项目的工作。

    Maven 是通过 pom.xml (Project Object Model,项目对象模型)来对项目进行配置的,可以查看 storm-starter 目录下的 pom.xml 来查看运行该入门代码所需的各种 jar 包。

    Maven安装

    Maven的官方下载地址为http://maven.apache.org/download.cgi,直接下载地址为:http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

    下载后执行如下命令进行安装:

    1. sudo tar -zxf ~/下载/apache-maven-3.3.9-bin.tar.gz -C /usr/local/
    2. cd /usr/local
    3. sudo mv ./apache-maven-3.3.9 maven
    4. sudo chown -R hadoop ./maven # hadoop为你使用的用户名
    Shell 命令

    安装后便可使用(需要配置好 JDK 1.7 环境),为方便,我们将 maven 命令加入 PATH 变量中。执行 vim ~/.bashrc,在最后面加上一行 export PATH=/usr/local/maven/bin:$PATH,如下图所示。

    将Maven加入PATH中将Maven加入PATH中

    保存文件后执行 source ~/.bashrc ,接着执行 mvn -v 检验,安装成功的话会显示如下图内容:

    检验Maven是否安装成功检验Maven是否安装成功

    更换 Maven 镜像

    Maven 的官方镜像比较慢,建议使用 开源中国 Maven 库 提供的镜像,速度比较快,避免因网络问题无法下载依赖包,更改镜像只需要修改 Maven 的配置文件(vim /usr/local/maven/conf/setting.xml)即可。此外,笔者实践时,发现 Storm 所需的部分依赖包需要从 clojars.org 下载,但该网站的证书有问题,导致通过 https 无法下载,需要在配置文件中将该源的访问方式改为 http 访问。

    修改 Maven 的配置文件(vim /usr/local/maven/conf/setting.xml),在 <mirrors> … </mirrors> 间增加如下内容:

    1. <mirror>
    2. <id>nexus-osc</id>
    3. <mirrorOf>central</mirrorOf>
    4. <name>Nexus osc</name>
    5. <url>http://maven.oschina.net/content/groups/public/</url>
    6. </mirror>
    7. <mirror>
    8. <id>nexus-osc-thirdparty</id>
    9. <mirrorOf>thirdparty</mirrorOf>
    10. <name>Nexus osc thirdparty</name>
    11. <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
    12. </mirror>
    13. <mirror>
    14. <id>clojars</id>
    15. <mirrorOf>clojars</mirrorOf>
    16. <url>http://clojars.org/repo/</url>
    17. </mirror>
    XML

    并在 <profile> … </profile> 间增加如下内容:

    1. <id>jdk-1.4</id>
    2. <activation>
    3. <jdk>1.4</jdk>
    4. </activation>
    5.  
    6. <repositories>
    7. <repository>
    8. <id>nexus</id>
    9. <name>local private nexus</name>
    10. <url>http://maven.oschina.net/content/groups/public/</url>
    11. <releases>
    12. <enabled>true</enabled>
    13. </releases>
    14. <snapshots>
    15. <enabled>false</enabled>
    16. </snapshots>
    17. </repository>
    18. <repository>
    19. <id>osc_thirdparty</id>
    20. <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
    21. </repository>
    22. <repository>
    23. <id>clojars</id>
    24. <url>http://clojars.org/repo/</url>
    25. </repository>
    26. </repositories>
    27. <pluginRepositories>
    28. <pluginRepository>
    29. <id>nexus</id>
    30. <name>local private nexus</name>
    31. <url>http://maven.oschina.net/content/groups/public/</url>
    32. <releases>
    33. <enabled>true</enabled>
    34. </releases>
    35. <snapshots>
    36. <enabled>false</enabled>
    37. </snapshots>
    38. </pluginRepository>
    39. </pluginRepositories>
    XML

    修改后保存配置文件就可以了。

    该配置注释文本较多,看起来比较凌乱,不方便更改,如果有需要,也可以下载笔者修改好的版本,下载地址:http://pan.baidu.com/s/1qXwZlsK,下载后执行如下命令替换配置文件:

    1. cp ~/下载/maven-settings.xml /usr/local/maven/conf/settings.xml
    Shell 命令

    编译、运行代码

    在此之前请先开启 Storm (即开启 zookeeper,nimbus 和 supervisor),并确定系统处于联网状态,因为在编译过程中需要下载不少依赖包。

    接着我们开始使用 maven 编译、运行 Storm starter。我们只需要进入 storm starter 所在目录,再执行相应的 mvn 命令即可:

    1. cd /usr/local/storm/examples/storm-starter
    2. mvn compile exec:java -Dstorm.topology=storm.starter.WordCountTopology
    Shell 命令

    mvn 命令需要在项目的根目录中运行,即在 storm-starter 目录中运行,该命令会查找当前目录下的 pom.xml 文件,下载所需要的依赖包。

    首次运行需要下载较多东西,如下图所示,请耐心等待。

    首次运行需要下载较多依赖包首次运行需要下载较多依赖包

    如果遇到网络错误,导致有些依赖包无法下载或下载不完整,编译结束时会提示如下图的 ERROR 信息(Failed to execute goal on project storm-starter: Could not resolve dependencies for project org.apache.storm:storm-starter:jar:0.9.6: The following artifacts could not be resolve…),此时可以重新运行上述代码再试几次。

    Maven下载依赖包时可能会出现网络错误Maven下载依赖包时可能会出现网络错误

    一般会出现网络问题都是由于无法访问 clojars.org,编译过程中会提示错误 “信息: I/O exception (java.net.SocketException) caught when processing request to {}->http://clojars.org:80: 网络不可达”。

    如果多次尝试均无法正常下载的话,请下载笔者的离线依赖包,解压到本地的依赖库中(本地依赖库位置为 ~/.m2/),可以解决该问题(Maven 查找依赖包时,首先查找的是本地已下载的依赖包,缺少的再从网络中下载)。下载地址:http://pan.baidu.com/s/1eQWVe3w(笔者提供的依赖包仅适合于 Storm 0.9.6 版本)。

    下载后,如果还在进行编译需要先中断,然后执行如下命令解压依赖包,解压后再次编译应该就能成功了:

    1. tar -zxf ~/下载/storm-starter-0.9.6-repository.tar.gz -C ~/.m2/
    Shell 命令

    编译成功后,紧接着就会在 Storm 中运行,我们能看到不断输出的 INFO 信息,编译最后如果是出现如下 BUILD FAILURE 信息:

    ...
    22125 [SessionTracker] INFO  org.apache.storm.zookeeper.server.SessionTrackerImpl - SessionTrackerImpl exited loop!
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    ...
    

    一般是没有问题的,程序有正确执行。我们可以再运行一次,执行如下代码,用 grep 命令进行过滤,只查看重要的运行结果:

    1. mvn compile exec:java -Dstorm.topology=storm.starter.WordCountTopology | grep 'Thread-[0-9]*-count'
    Shell 命令

    此时不需要再下载这么多东西,编译很快完成。我们只输出单词统计信息,可以看到输出结果与 Storm安装教程 中运行实例时是一致的,说明编译正确。

    WordCount输出结果WordCount输出结果

    打包代码

    我们也可以将代码打包成 jar,打包后可以直接提交到 Storm 中运行。在 storm starter 所在目录中执行如下命令:

    1. mvn package
    Shell 命令

    打包完成后,会在 target 文件中生成 storm-starter-0.9.6.jar 和 storm-starter-0.9.6-with-dependencies.jar,就可以把 jar 包提交到 Storm 中运行了。

    1. /usr/local/storm/bin/storm jar ./target/storm-starter-0.9.6.jar storm.starter.WordCountTopology
    Shell 命令

    后续我们编写自己的代码时,建议使用 maven 来方便的编译、运行代码。另外,官方使用说明中有更为详细的一些说明,如在 Intellij 中运行 Storm starter,有需要的可以自行查看。

    总的来说,Storm starter 提供了很好的代码(源代码是在 storm-starter/src/jvm/storm/starter/ 中),例如 RollingTopWords,给我们自己编写 Storm 代码提供了一个很好的借鉴。


    展开全文
  • Storm编程实践(安装Maven-使用Maven编译运行代码-mvn 打包)
  • Storm 官方提供了入门代码(Storm starter),即Storm安装教程中所运行的实例(storm-starter-topologies-0.9.6.jar),该入门代码位于 /usr/local/storm/examples/storm-starter/ 中,包含多个例子,对于学习 Storm...

    Storm 官方提供了入门代码(Storm starter),即 Storm安装教程 中所运行的实例(storm-starter-topologies-0.9.6.jar),该入门代码位于 /usr/local/storm/examples/storm-starter/ 中,包含多个例子,对于学习 Storm 很有帮助。同时官方也有给出了详细的使用说明(上述目录下的 README.markdown 文件),本教程基本是按照官方使用说明来介绍如何使用 Maven 来编译代码,以运行于 Storm 中。

     

    Maven介绍

    Maven 是现在 Java 社区中最强大的项目管理和项目构建工具。我们在开发项目的过程中,会使用一些开源框架、第三方的工具等等,这些都是以 jar 包的方式被项目所引用,并且有些 jar 包还会依赖其他的 jar 包,我们同样需要添加到项目中,所有这些相关的 jar 包都会作为项目的依赖。通常,一个 Java EE 项目所依赖的 jar 包会有很多。然而,这还并非是主要问题,在管理这些 jar 包过程中,jar 包的版本往往是最令人头疼的问题。选择一个 jar 包的版本,需要考虑它所依赖的 jar 包是否支持这个版本,并且还需要确认依赖它的 jar 包能不能对这个版本兼容,难以进行部署与管理。

    Maven 的出现,解决了开发过程中的这一难题。它可以对项目依赖的 jar 包进行管理,可以让你的项目保持基本的依赖,排除冗余 jar 包,并且可以让你非常轻松的对依赖的 jar 包进行版本升级。而这些仅仅是 Maven 最基本的功能,它可以在这基础上对项目进行清理、编译、测试、打包、发布等等构建项目的工作。

    Maven 是通过 pom.xml (Project Object Model,项目对象模型)来对项目进行配置的,可以查看 storm-starter 目录下的 pom.xml 来查看运行该入门代码所需的各种 jar 包。

    Maven安装

    Maven的官方下载地址为http://maven.apache.org/download.cgi,直接下载地址为:http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz 或http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

    下载后执行如下命令进行安装:

    1. sudo tar -zxf ~/下载/apache-maven-3.3.9-bin.tar.gz -C /usr/local/
    2. cd /usr/local
    3. sudo mv ./apache-maven-3.3.9 maven
    4. sudo chown -R hadoop ./maven # hadoop为你使用的用户名
    Shell 命令

    安装后便可使用(需要配置好 JDK 1.7 环境),为方便,我们将 maven 命令加入 PATH 变量中。执行 vim ~/.bashrc,在最后面加上一行 export PATH=/usr/local/maven/bin:$PATH,如下图所示。

    将Maven加入PATH中将Maven加入PATH中

    保存文件后执行 source ~/.bashrc ,接着执行 mvn -v 检验,安装成功的话会显示如下图内容:

    检验Maven是否安装成功检验Maven是否安装成功

    更换 Maven 镜像

    Maven 的官方镜像比较慢,建议使用 开源中国 Maven 库 提供的镜像,速度比较快,避免因网络问题无法下载依赖包,更改镜像只需要修改 Maven 的配置文件(vim /usr/local/maven/conf/setting.xml)即可。此外,笔者实践时,发现 Storm 所需的部分依赖包需要从 clojars.org 下载,但该网站的证书有问题,导致通过 https 无法下载,需要在配置文件中将该源的访问方式改为 http 访问。

    修改 Maven 的配置文件(vim /usr/local/maven/conf/setting.xml),在 <mirrors> … </mirrors> 间增加如下内容:

    1. <mirror>
    2. <id>nexus-osc</id>
    3. <mirrorOf>central</mirrorOf>
    4. <name>Nexus osc</name>
    5. <url>http://maven.oschina.net/content/groups/public/</url>
    6. </mirror>
    7. <mirror>
    8. <id>nexus-osc-thirdparty</id>
    9. <mirrorOf>thirdparty</mirrorOf>
    10. <name>Nexus osc thirdparty</name>
    11. <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
    12. </mirror>
    13. <mirror>
    14. <id>clojars</id>
    15. <mirrorOf>clojars</mirrorOf>
    16. <url>http://clojars.org/repo/</url>
    17. </mirror>
    XML

    并在 <profile> … </profile> 间增加如下内容:

    1. <id>jdk-1.4</id>
    2. <activation>
    3. <jdk>1.4</jdk>
    4. </activation>
    5.  
    6. <repositories>
    7. <repository>
    8. <id>nexus</id>
    9. <name>local private nexus</name>
    10. <url>http://maven.oschina.net/content/groups/public/</url>
    11. <releases>
    12. <enabled>true</enabled>
    13. </releases>
    14. <snapshots>
    15. <enabled>false</enabled>
    16. </snapshots>
    17. </repository>
    18. <repository>
    19. <id>osc_thirdparty</id>
    20. <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
    21. </repository>
    22. <repository>
    23. <id>clojars</id>
    24. <url>http://clojars.org/repo/</url>
    25. </repository>
    26. </repositories>
    27. <pluginRepositories>
    28. <pluginRepository>
    29. <id>nexus</id>
    30. <name>local private nexus</name>
    31. <url>http://maven.oschina.net/content/groups/public/</url>
    32. <releases>
    33. <enabled>true</enabled>
    34. </releases>
    35. <snapshots>
    36. <enabled>false</enabled>
    37. </snapshots>
    38. </pluginRepository>
    39. </pluginRepositories>
    XML

    修改后保存配置文件就可以了。

    该配置注释文本较多,看起来比较凌乱,不方便更改,如果有需要,也可以下载笔者修改好的版本,下载地址:http://pan.baidu.com/s/1qXwZlsK,下载后执行如下命令替换配置文件:

    1. cp ~/下载/maven-settings.xml /usr/local/maven/conf/settings.xml
    Shell 命令

    编译、运行代码

    在此之前请先开启 Storm (即开启 zookeeper,nimbus 和 supervisor),并确定系统处于联网状态,因为在编译过程中需要下载不少依赖包。

    接着我们开始使用 maven 编译、运行 Storm starter。我们只需要进入 storm starter 所在目录,再执行相应的 mvn 命令,并指定参数即可,以运行 Storm starter 中的 WordCount 为例(WordCount 源码位于:/usr/local/storm/examples/storm-starter 下的 src/jvm/storm/starter/WordCountTopology.java):

    1. cd /usr/local/storm/examples/storm-starter
    2. mvn compile exec:java -Dstorm.topology=storm.starter.WordCountTopology
    Shell 命令

     

    mvn 命令需要在项目的根目录中运行,即在 storm-starter 目录中运行,该命令会查找当前目录下的 pom.xml 文件,下载所需要的依赖包。

    首次运行需要下载较多东西,如下图所示,请耐心等待。

    首次运行需要下载较多依赖包首次运行需要下载较多依赖包

    如果遇到网络错误,导致有些依赖包无法下载或下载不完整,编译结束时会提示如下图的 ERROR 信息(Failed to execute goal on project storm-starter: Could not resolve dependencies for project org.apache.storm:storm-starter:jar:0.9.6: The following artifacts could not be resolve…),此时可以重新运行上述代码再试几次。

    Maven下载依赖包时可能会出现网络错误Maven下载依赖包时可能会出现网络错误

    一般会出现网络问题都是由于无法访问 clojars.org,编译过程中会提示错误 “信息: I/O exception (java.net.SocketException) caught when processing request to {}->http://clojars.org:80: 网络不可达”。

    如果多次尝试均无法正常下载的话,请下载笔者的离线依赖包,解压到本地的依赖库中(本地依赖库位置为 ~/.m2/),可以解决该问题(Maven 查找依赖包时,首先查找的是本地已下载的依赖包,缺少的再从网络中下载)。下载地址:http://pan.baidu.com/s/1eQWVe3w(笔者提供的依赖包仅适合于 Storm 0.9.6 版本)。

    下载后,如果还在进行编译需要先中断,然后执行如下命令解压依赖包,解压后再次编译应该就能成功了:

    1. tar -zxf ~/下载/storm-starter-0.9.6-repository.tar.gz -C ~/.m2/
    Shell 命令

    编译成功后,紧接着就会在 Storm 中运行,我们能看到不断输出的 INFO 信息,编译最后如果是出现如下 BUILD FAILURE 信息:

    ...
    22125 [SessionTracker] INFO  org.apache.storm.zookeeper.server.SessionTrackerImpl - SessionTrackerImpl exited loop!
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    ...
    

    一般是没有问题的,程序有正确执行。我们可以再运行一次,执行如下代码,用 grep 命令进行过滤,只查看重要的运行结果:

    1. mvn compile exec:java -Dstorm.topology=storm.starter.WordCountTopology | grep 'Thread-[0-9]*-count'
    Shell 命令

    此时不需要再下载这么多东西,编译很快完成。我们只输出单词统计信息,可以看到输出结果与 Storm安装教程 中运行实例时是一致的,说明编译正确。

    WordCount输出结果WordCount输出结果

    打包代码

    我们也可以将代码打包成 jar,打包后可以直接提交到 Storm 中运行。在 storm starter 所在目录中执行如下命令(这样打包的是整个 Storm starter):

    1. mvn package
    Shell 命令

    打包完成后,会在 target 文件中生成 storm-starter-0.9.6.jar 和 storm-starter-0.9.6-with-dependencies.jar,就可以把 jar 包提交到 Storm 中运行了。

    1. /usr/local/storm/bin/storm jar ./target/storm-starter-0.9.6.jar storm.starter.WordCountTopology
    Shell 命令

    后续我们编写自己的代码时,建议使用 maven 来方便的编译、运行代码。另外,官方使用说明中有更为详细的一些说明,如在 Intellij 中运行 Storm starter,有需要的可以自行查看。

    总的来说,Storm starter 提供了很好的代码(源代码是在 storm-starter/src/jvm/storm/starter/ 中),例如RollingTopWords,给我们自己编写 Storm 代码提供了一个很好的借鉴。

    转载于:https://www.cnblogs.com/yaohaitao/p/5464474.html

    展开全文
  • maven编译storm+kafka的AdvertisingTopology项目后进行提交时,出现如下异常信息: 问题解决 问题原因是因为storm-kafka依赖没有被maven编译到jar文件中。pom.xml中的storm-kafka依赖修改为: <dependency&...

    问题描述

    maven编译storm+kafka的AdvertisingTopology项目后进行提交时,出现如下异常信息:

    image

    问题解决

    问题原因是因为storm-kafka依赖没有被maven编译到jar文件中。pom.xml中的storm-kafka依赖修改为:

    <dependency>
        <groupId>org.apache.storm</groupId>
        <artifactId>storm-kafka</artifactId>
        <version>${storm.version}</version>
        <!--<scope>provided</scope>-->
    </dependency>

    其中将<scope>项注释掉后,重新编译提交即可以正常提交

    展开全文
  • 近期遇到一些同学询问Storm-0.9.2-incubating源代码编译打包的问题,现将编译步骤说明例如以下: 1、凝视掉project各pom文件里关于maven插件(maven-gpg-plugin)的内容,目的是规避错误: 当然,该错误也能够...
  • maven使用

    2017-04-09 16:09:56
    Storm编译运行1maven依赖下载Maven教程 - 更换镜像ubuntu eclipse 安装maven插件更换 Maven 镜像Maven 的官方镜像比较慢,建议使用其他网站提供的镜像,速度比较快国内访问repo1.maven.org访问不了,导致maven不能...
  • Maven简介

    2015-05-07 21:37:40
    maven我在学习storm中刚刚接触的一个工具,感觉很神奇。就自己找了一些资料了解了一下。原来这是一个做项目时可以自动打包成模块的工具。百科上说是Maven是基于项目对象模型。又来构建高级项目的。我觉得太深了。我...
  • 上一章 我讲了 Slope One 补充的一种数据推荐方式 ,虽然贴出了 很多代码 ,但是网友向我反映 他不会scala 问我 那些...1.Storm 打包方式 jarstorm jar xxxxx.jar 提交 时候需要一个全依赖的jar 如果有时候storm ...
  • storm 开发环境搭建

    千次阅读 2015-10-13 18:24:02
    参考官方文档没有那么复杂,本地开发调试只需要使用maven依赖storm库,就能够在本地进程中模拟运行你的storm topology程序。从github的例子开始获取github上的官方例子代码git clone git://github....
  • Maven打包方式

    2018-08-20 18:55:26
    storm本地版和打jar包为例。打jar包分为三种方式。 1.——————————只打自己的包,不打依赖包—————————— pom下什么也不用设置,或者设置个打包编译的JDK就行了,例如 &lt;plugin&...
  • Storm之——编程案例

    千次阅读 2017-10-29 11:30:45
    一、程序需求 今天,我们再次为大家带来一篇关于Storm的文章,以便为大家起到复习Storm的效果。这篇文章的编程案例基于Maven实现,主要的功能是:从文件读取内容——>切分单词,...首先我们创建一个Maven工程,编译pom
  • 前言下载Maven编译安装导入Eclipse 前言 最近看了看Apache Flume,在虚拟机里跑了一下flume + kafka + storm + mysql架构的demo,功能很简单,主要是用flume收集数据源(http上报信息),放入到kafka队列里,然后...
  • 在创建maven项目时,添加了 storm的一些的依赖之后 编译项目 报错了: 问题一: 错误显示 缺少 jdk.tools:jdk.tools:jar:1.7 因为我的java环境是1.7的 编译时 这个jar包没有编译  我右键项目-Properties-...
  • MAVEN使用的一些tips

    2017-03-22 12:59:00
    有一种场景是,我们用IDE编写一些业务功能,然后将它打成jar包放到某个集群中运行,比如hadoop,storm等。 解释 因为编译的环境是在本地的IDE,而运行的环境是在某个集群环境,可能出现因为本地编译环境存在某个...
  • Eclipse运行storm-starter

    千次阅读 2016-09-14 13:45:02
    官网下载的Storm安装文件中自带storm-starter源码,所在路径为storm/examples/storm-starter,可以在该目录下用maven打包源代码并提交到storm上运行,也可以使用eclipse编译运行。 1.新建项目,导入依赖库 在eclipse...
  • storm-kafka的使用

    2016-01-03 21:28:00
    storm-kafka的使用 1.storm-kafka介绍 storm-kafka是storm自带的从kafka上获取消息的kafka客户端程序。 提供kafka和Trident的spout实现从kafka消费数据。 2.storm-kafka的使用实例 ...如果不引,虽然编译不报错,但...
  • 先看看maven的build过不过:搞定storm编译打包,接着是storm-starter的编译打包,一切很顺利啊,跑一下看看:顺利出结果了,不就是个helloworld嘛!接着造本地环境吧,将storm-starter的源码按maven方式导入...
  • 一,Linux (Ubuntu)环境笔者是在ubuntu 12.04系统下完成的,前提条件是...clonegit@github.com:nathanmarz/storm-starter.git然后需要maven或者lein 来编译,笔者尝试用lein编译多次,总是不成功,各种报错。用mav...
  • 背景 最近收到这样一个问题: Storm处理消息时会根据Topology生成一棵消息树,Storm如何跟踪每个消息、如何保证消息不丢失以及如何实现重发消息机制? 虽已回复,但心想还是看下storm...搞定storm编译打包,接着...
  • 1.将apache-maven-3.2.1.storm.zip和zkui.storm.zip传入虚拟机中,可建立目录存放,在这里我直接放在/home/storm/目录下,解压缩:unzip apache-maven-3.2.1.storm.zip unzip zkui.storm.zip 2.安装编译工具mvn,在...
  • Mac如何安装lein

    千次阅读 2017-02-08 19:44:55
    编译storm源代码时,我们需要安装lein(clojure的包依赖管理工具,类似于 maven之于java),如果采用下载源代码的方式安装,可能会报告 >lein Leiningen is missing its dependencies. Please run "lein ...
  • 目录 软件下载 2 安装虚拟机管理器 2 ...使用Eclipse编写Storm程序(maven) 134 Kafka安装 142 Flume安装 151 Sqoop安装 159 Hama安装 165 使用Eclipse编写Hama应用程序 168 参考文献: 174

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

maven编译storm