Hadoopファイルシステムからファイルを読み取りたい。
ファイルの正しいパスを取得するには、hdfs
のホスト名とポートアドレスが必要です。
最終的に、ファイルのパスは次のようになります。
Path path = new Path("hdfs://123.23.12.4344:9000/user/filename.txt")
ここで、HostName = "123.23.12.4344"&port:9000を抽出する方法を知りたいですか?
基本的に、Amazon EMRのファイルシステムにアクセスしたいのですが、
FileSystem fs = FileSystem.get(getConf());
パスをサポートするファイルシステムを取得するためにFileSystem.get(uri、conf)を呼び出す必要があるときに、FileSystem.get(conf)を呼び出した可能性があります
エラーを解決するには、2つの方法のいずれかを使用できます。
1.1。
String infile = "file.txt";
Path ofile = new Path(infile);
FileSystem fs = ofile.getFileSystem(getConf());
2.2。
Configuration conf = getConf();
System.out.println("fs.default.name : - " + conf.get("fs.default.name"));
// It prints uri as : hdfs://10.214.15.165:9000 or something
String uri = conf.get("fs.default.name");
FileSystem fs = FileSystem.get(uri,getConf());