【问题标题】:Need to create a jar file everytime a code is modified in Map reduceMap reduce中每次修改代码都需要创建一个jar文件
【发布时间】:2014-06-28 19:45:23
【问题描述】:

我在 Hadoop 单节点集群中运行一个程序(MapReduce)。 经常对 MapReduce 逻辑进行一些修改。我正在使用 Eclipse IDE。

每次对逻辑进行修改后,我都会创建一个 jar 文件来检查 Hadoop 中的 Mapreduce 作业。这样每次修改 MapReduce 逻辑后都创建一个 jar 文件有点繁琐。

有没有更简单的方法可以在每次进行更改时创建 jar 文件?请指教。

【问题讨论】:

  • 你在使用任何构建工具吗?

标签: hadoop mapreduce


【解决方案1】:

目前尚不清楚是您必须制作 jar 文件这一事实,还是制作 jar 的过程似乎太难了。首先,您必须制作一个 jar 文件来向 Hadoop 提交作业。没有办法解决这个问题。其次,为了使创建 jar 文件的过程更容易,您可以使用 Maven 之类的构建工具来简化此过程。如果需要,Maven Assembly 插件还会打包一个包含所有依赖项的 uber jar。

【讨论】:

    【解决方案2】:

    我使用 Scalding 编写 mapreduce 作业(它像 Pig 一样简洁,像 Java 一样灵活/高性能),然后我使用 sbt 来构建。我有一个 rsync 脚本,可以将我的代码同步到集群上的某个位置,在该位置我启动“sbt concole”——它是一个 repl(shell),您可以在其中导入库。

    结果是,我可以在 shell 中以交互方式运行 mapreduce 作业,只需从项目中调用我的代码、将代码直接写入 shell 或将粘贴代码复制到 shell 中。 IME 你无法击败这种工作流程!

    【讨论】:

      【解决方案3】:

      如果您使用的是 Eclipse IDE,您可以将 MapReduce 插件添加到 eclipse 中,并在提供 HDFS 和 MapReduce 的端口号后创建位置。所以在eclipse中你可以简单的右键运行>选择Run on hadoop,这样可以避免创建jar文件。

      【讨论】:

        猜你喜欢
        • 2014-03-13
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        • 2012-03-06
        • 2014-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多