我正在编写一个spark程序,根据运行的环境从maven下载不同的jar,每个jar都用于不同版本的Hadoop发行版(例如CDH,HDP,MapR)。
这是必要的,因为HDFS和YARN的某些低级API不在这些发行版之间共享。但是,我找不到HDFS和YARN的任何公共API来告诉他们的版本。
是否可以仅在Java中执行此操作?或者我必须运行外壳来了解它?
答案 0 :(得分:3)
在Java org.apache.hadoop.util.VersionInfo.getVersion()应该可以工作。
https://hadoop.apache.org/docs/current/api/org/apache/hadoop/util/VersionInfo.html
对于CLI,您可以使用:
$ hadoop version
$ hdfs version
$ yarn version