java - 我可以从 Axis2 Web 服务调用 Hadoop API 吗?

标签 java web-services hadoop

我打算开发一个Web服务,它可以与Hadoop主节点对话执行一些任务。 这些任务包括: 1.启动和停止hadoop集群 2.在hadoop集群中添加和删除从节点 3.从Web服务调用一些API,例如指标一。

我不希望你们告诉我一切(请不要!),但只要告诉我如何从我的 Web 服务调用 Hadoop API 即可。在类路径中包含 Hadoop jar 就足够了吗?我想我也需要一些配置。请指导我在 Web 服务和 Hadoop 集群之间设置一个简单的调用流程。

最佳答案

由于启动和停止是 shell 脚本,因此您将无法从 Hadoop jar 内重新启动集群。

快速列出您必须为任务执行的操作:

  1. 启动和停止是 shellscript,您需要使用 Runtime.getRuntime().exec("YOUR SHELL SCRIPT") 并让 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. 这正是你所说的,你可以简单地把 jar 和你需要的东西放在一起。但是您必须设置一个包含 fs.default.namemapred.job.tracker 属性的 Configuration 对象。这些属性的值是 namenode 和 jobtracker 的主机名。您可以在 master 上的配置 xml 中找到它。 然后,您可以将此对象提供给 FileSystem.get(YOURCONFIGURATION) 例如并使用 API。

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

关于java - 我可以从 Axis2 Web 服务调用 Hadoop API 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130499/

相关文章:

java - 使用 Square 的 Retrofit Client,是否可以取消正在进行的请求?如果有怎么办?

java - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 3090 >= 3090 at java. util.Vector.elementAt

java - 如何使用 AJAX 查询动态填充 Google Chart,获取 DOM 异常 8

c# - 在 C# 中将 Soap 请求 header 从 text/xml 更改为 soap/xml for asmx webservice

hadoop - 等待AM容器被分配、启动并注册到RM

hadoop - 使用Pig分析日志文件

java - JPanel 中的组件不会自动换行

c# - 如何将异步工作作为 Web 服务的一部分进行?

web-services - Restful API - 处理大量数据

hadoop - 是否可以使用 Exiftool 获取 Hdfs 图像/视频文件元数据