对于下面的命令,它会生成复制状态、集群运行状况、块数、数据节点等信息
./hadoop-2.5.1/bin/hdfs fsck /
同样,下面的命令给出Hadoop中已占用空间的输出
./hadoop-2.5.1/bin/hdfs dfs -df -h
Filesystem Size Used Available Use%
hdfs://HadoopCluster 100.4 T 84.6 T 15.8 T 84%
我可以获取dfshhealth.html或登录系统的信息并执行该命令。
有没有办法通过Java API获取信息?
在后台,所有这些都通过API公开,可以通过Java访问。我想你要找的是HdfsAdmin(https://hadoop.apache.org/docs/r3.2.0/api/org/apache/hadoop/hdfs/client/HdfsAdmin.html)。
所有CLI命令都映射到Java类
hdfs dfs
运行org.apache.hadoop.fs.FsShell
https://github.com/apache/hadoop/blob/release-2.5.1/hadoop-hdfs-project/hadoop-hdfs/src/main/bin/hdfs#L146
作为对您其他评论的回应,我认为您正在寻找DFSAdmin,它有一个报告方法
https://github.com/apache/hadoop/blob/release-2.5.1/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DFSAdmin.java