学習ログ---ローカルjavaApi接続クラスタhdfs

2378 ワード

ローカルコンピュータ接続指定クラスタのコード:
public class Tt_one {

    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://hadoop1:9000");
        FileSystem hdfs = FileSystem.get(conf);
        FSDataInputStream in1 = null;
        in1 = hdfs.open(new Path("/input/t1.txt"));
        BufferedReader br1 = new BufferedReader(new InputStreamReader(in1));
        String line = br1.readLine();
        System.out.println(line); 
    }
}

クラスタファイルのローカル削除と追加
ここでは、hdfsの前のファイルを削除して新規に作成し、hdfsの上のファイルをそのファイルにコピーします.
hdfsで削除および新規作成する場合は、操作ファイルの下の権限を開く必要があります.“hdfs dfs -chmod  777   /input” ,
package bbdt.steiss.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;


public class Tt_one {

    public static void main(String[] args) throws Exception {
         Configuration conf = new Configuration();
         conf.set("fs.defaultFS", "hdfs://hadoop1:9000");
         FileSystem fs = FileSystem.get(conf);
         FSDataInputStream in1 = null;
         in1 = fs.open(new Path("/output/part-r-00000"));
         BufferedReader br1 = new BufferedReader(new InputStreamReader(in1));
         fs.delete(new Path("/input/test2.txt"),true);
         FSDataOutputStream fsDataOutputStream = fs.create(new Path("/input/test2.txt"));
         BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(fsDataOutputStream));
         String s1 = null;
         while ((s1 = br1.readLine()) != null)
         {
             bw1.write(s1);
             bw1.write("
");          }          bw1.close();          fsDataOutputStream.close();          br1.close();          in1.close();              } }

FileSystemの作成方法:
上は一種、ここも一種
DirFileはhdfsのエントリアドレスです.
hdfs://hadoop1:9000
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(DirFile), conf);