HDFSファイルのアップロードと認定--Kerberos --clientモードをダウンロード

 

輸入org.apache.hadoop.conf.Configuration。
輸入org.apache.hadoop.fs.FileSystem;
輸入org.apache.hadoop.fs.Path。
輸入org.apache.hadoop.io.IOUtils。
輸入org.apache.hadoop.security.UserGroupInformation。
輸入org.slf4j.Logger。
輸入org.slf4j.LoggerFactory; 

インポートのjava.io.File;
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException;
輸入java.io.InputStreamを。
インポートにjava.io.OutputStream; 

パブリック クラスFileSystemConnection {
     プライベート 静的文字列HDFS_URI = "HDFS://10.46.0.213:8020" ;
    プライベート 静的な文字列KERBEROS_PRINC =「管理者の@ TDH」プライベート 静的な文字列KERBEROS_PRINC_KEYTAB_PATH = 
            "D:\\レポ\\ codeRepo \\ \\ gitのデータサービス\\データ・サービス-サービス・IMPL \\ SRC \\メイン\\リソース\\ admin.keytab" パブリック 静的 最終ロガーロガー= LoggerFactory.getLogger(FileSystemConnection。クラス)。

    公共の 静的なファイルシステムgetHdfsConnectionは(){
         しようと{ 
            設定のconf = 新しい)(構成します。
            conf.set("fs.defaultFS" 、HDFS_URI)。
            conf.set( "hadoop.security.authentication"、 "ケルベロス" ); 
            conf.set( "hadoop.security.authorization"、 "真" ); 
            conf.set( "dfs.datanode.address"、 "0.0.0.0:50010" );
//             conf.set( "dfs.datanode.ipc.address"、 "0.0.0.0:50020");
            // 没开ケルベロス、下面两行き注释 
            logger.info( "Kerberosプリンシパル:{}、キータブパス:{}" 、KERBEROS_PRINC、KERBEROS_PRINC_KEYTAB_PATH)。
            UserGroupInformation.setConfiguration(CONF)。
            UserGroupInformation。
            ファイルシステムFS = FileSystem.get(CONF)。
            リターンFS; 
        } キャッチ(例外e){
             スロー 新しいのRuntimeExceptionを( "HDFS接続失敗を得る" 、E)。
        } 
    } 

    プライベート 静的 ボイド downLoadFile()はスローにIOException { 
     ファイルシステムDFS = getHdfsConnection()。 列src = "HDFS://10.46.0.213:8020を/ tmp / TDT" ストリングDEST = "D:\\ TestFs" パスパス = 新しいパス(SRC); してみてください{ 場合(dfs.exists(パス)){ ファイルfile =新しいファイル(destの+ File.separator + path.getName()); file.createNewFile(); InputStream = dfs.open(パス)。 うちのOutputStream = 新しいのFileOutputStream(ファイル); IOUtils.copyBytes(IN、OUT、CONF)。 in.close(); out.close(); } } キャッチ(例外e){ e.printStackTrace(); } } }

 

おすすめ

転載: www.cnblogs.com/jvStarBlog/p/11416096.html