Hadoop
こんにちは、Java プログラムからユーザーとグループのリストを取得したいと考えています。それを取得する方法はありますAPI
か?私はたくさんグーグルで検索しましたが、まだ何も見つかりませんでした.:(
質問する
5790 次
2 に答える
0
API についてはわかりませんが、情報を取得する確実な方法は、名前ノードの fsimage を解析し、XML 形式で情報を取得する Offline Image Viewer を使用することです。その後、単純な Java API を使用して xml を解析し、ユーザーとグループのリストを取得できます。
役立つリンク a) http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsImageViewer.html b) https://github.com/twitter/hdfs-du
于 2013-06-19T09:03:17.073 に答える
0
hdfs://localhost:8020/user からすべてのユーザーを取得し、グループを使用してそれらのユーザーのグループを取得できます (ShellBasedUnixGroupsMapping サービス経由)。
ここにコードがあります
public class Sample {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
conf.addResource(new Path("/path/to/core-site.xml"));
conf.addResource(new Path("/path/to/hdfs-site.xml"));
Groups g = new Groups(conf);
FileSystem fs = FileSystem.get(conf);
FileStatus[] files = fs.listStatus(new Path("/user"));
for (FileStatus f : files) {
Path p = f.getPath();
try {
List<String> gs = g.getGroups(p.getName());
if (gs != null) {
System.out.println(p.getName() + " === " + gs.toString());
}
} catch (Exception e) {
System.out.println("No groups found for " + p.getName());
}
}
}
}
java -cp myjar.jar:/usr/lib/hadoop-hdfs/hadoop-hdfs.jar com.tools.Sample
于 2013-06-19T17:57:19.403 に答える