在Hadoop中,如何在数据节点上查看任务的类路径



我们正在使用hadoop jar命令运行mapreduce作业。我们的mapreduce代码使用hive api。我们正在包含包含-lbjars选项的hive库。

然而,hive安装在我们所有的数据节点上,所以我们想检查是否需要通过-libjars选项提供hive jar。我知道任务的类路径可能不包括datanode上可用的库,但它只从-libjars选项获得库,但我只是想确认这一点。

然而,现在的挑战是如何检查mapreduce任务的类路径。我尝试了ps -ef | grep java,但输出被截断为4096字节(已知问题),jps -vl甚至不会显示我的类路径。

是否有更简单的方法来找出任务的类路径是由什么组成的?Hadoop把它记录在某个地方?

您可以在mapper设置中打印CLASSPATH,然后在mapper的日志中检查:

@Override
protected void setup(Context context) throws IOException, InterruptedException {
   System.out.println(System.getenv("CLASSPATH"));
   ...
}
#<java_home>/bin/jinfo <pid>

显示了与任务JVM相关的所有信息,包括类路径。在输出中查找java.class.path =

现在,如何找出任务的pid ?

相关内容

  • 没有找到相关文章

最新更新