2011-02-26 96 views
0

我打算开发一个Web服务,可以与Hadoop主节点交谈来执行一些任务。 这些任务包括: 1.启动和追踪hadoop群集 2.从hadoop群集添加和删除从节点 3.调用一些API,如来自web服务的度量标准之一。我可以从我的Axis2 Web服务调用Hadoop API吗?

我不指望你们告诉我所有事情(请不要!),但只是告诉我如何从我的Web服务调用Hadoop API。在classpath中是否包含Hadoop jar?我想我也需要一些配置。请指导我设置Web服务和Hadoop集群之间的简单呼叫流程。

回答

1

由于启动和停止是shellscripts,您将无法从Hadoop jar中重新启动集群。

那么快上市你有你的工作做的:。

  1. 启动和回采是shellscripts,你需要去一个调用Runtime.getRuntime()EXEC(“你的shell脚本”)和让shellscript启动并停止集群。
  2. 添加和删除节点非常不寻常,因为Hadoop会自行管理它。对于退役,您必须编辑排除文件并刷新节点。这不是一个可以由Hadoop API管理的任务。在这里,您可以进一步阅读:I want to make a large cluster smaller by taking out a bunch of nodes simultaneously. How can this be done?
    但是,您可以使用DFSAdmin类刷新节点。文件本身必须在主机上编辑。请参阅下一点如何设置。
  3. 这正是你所说的,你可以简单地把罐子,只是你需要的东西。但是您必须设置包含fs.default.namemapred.job.tracker属性的Configuration对象。这些属性的值是namenode和jobtracker的主机名。你可以在主设备上的config xml中找到它。 然后,您可以将此对象提供给FileSystem.get(YOURCONFIGURATION)例如并使用API​​。

我希望这不是很多文字:) 祝你好运!

+0

托马斯,谢谢你的这些信息。我想诉诸执行选项作为最后的选择,但在你的答案后,似乎这是唯一的选择:)。无论如何非常感谢您的回复。 – chitresh 2011-02-27 18:02:19

相关问题