私は Hadoop などのアマチュアです。現在、Hadoop クラスター (HDFS) にアクセスして、クライアント Eclipse からファイルのリストを取得しようとしています。Hadoop Java クライアントで必要な構成をセットアップした後、次の操作を実行できます。
クライアントから HDFS にアクセスするcopyFromLocalFile、copyToLocalFile操作を実行できます。これが私が直面しているものです。listFiles() メソッドを指定すると、取得しています
org.apache.hadoop.fs.LocatedFileStatus@d0085360
org.apache.hadoop.fs.LocatedFileStatus@b7aa29bf
MainMethod
Properties props = new Properties();
props.setProperty("fs.defaultFS", "hdfs://<IPOFCLUSTER>:8020");
props.setProperty("mapreduce.jobtracker.address", "<IPOFCLUSTER>:8032");
props.setProperty("yarn.resourcemanager.address", "<IPOFCLUSTER>:8032");
props.setProperty("mapreduce.framework.name", "yarn");
FileSystem fs = FileSystem.get(toConfiguration(props)); // Setting up the required configurations
Path p4 = new Path("/user/myusername/inputjson1/");
RemoteIterator<LocatedFileStatus> ritr = fs.listFiles(p4, true);
while(ritr.hasNext())
{
System.out.println(ritr.next().toString());
}
私も FileContext を試してみましたが、最終的には filestatus オブジェクト文字列か何かしか取得できませんでした。リモートの hdfs ディレクトリに反復するときにファイル名を取得する可能性はありますか?指定したディレクトリ パス内のファイルの名前のみを取得できるように、これを手伝ってください、ありがとう。