HADOOP - 在mapper中获取节点名称

时间:2012-08-15 00:51:47

标签: hadoop mapper nodename

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

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