1

我正在编写一个映射器,并想知道是否可以获取映射器运行的节点名。

4

2 回答 2

3

Hadoop 会自动将您的 MapReduce 程序移动到您的数据所在的位置,因此我认为您可以执行 getHostName() (如果您使用的是 Java),它应该返回运行程序的节点的名称。

java.net.InetAddress.getLocalHost().getHostName();

如果您使用其他语言,例如 Python、Ruby 等(即使用 HadoopStreaming),同样的想法也适用,因此您应该能够使用这些语言中可用的适当函数/方法来获取主机名。

于 2012-08-15T03:18:50.630 回答
0

配置值fs.default.name很可能会为您提供到 namenode 的 URL,如果您获得 FileSystem ( Filesystem.get(conf)) 的实例,您应该能够调用该getUri()方法来获得相同的信息。

于 2012-08-15T13:19:35.330 回答