以前は、HTTPおよびFTPファイルをローカルエリアにダウンロードするためにStreamsの使用を実装し、HDFSにローカルファイルのアップロードを実装しました。
FTPファイルとHTTPファイルはHDFSに転送され、FTPファイルとHTTPファイルをローカルにコピーしてからHDFSにアップロードする必要はありません。実際、このことの原則は非常に簡単です。それは、FTPまたはHTTPファイルをストリームに読み取り、ストリームの内容をHDFSに転送することです。ローカルハードディスク、メモリが転送プロセスを完了させるだけです。
以前のツールへのリンクは次のとおりです。
HTTPツール
FTPツールリンク説明
コードは次のとおりです。
java.io.inputStream; Import Java.OutputStream; Import java.io.ioexceprans {private string head = ""; ""文字列hdfsfilepath){this.hdfsfilepath = hdfsfilepath} ;パブリックボイド(String Head){this.head = head} {return this.head; head = hostname = filepath = hdfsfilepath; ;)if(head.equals( "http")|| head .equals( "https")&& hostname!= ""){string httpurl = head + "://" + hostname + "/" + filepath; hdfsutil.gethdfsnode()+hdfsutil.gethdfspath()); .sethadoopdefault( "./ hadoop-default.xml"); filepath "" hdfsfilepath = "" ftp hostname = args [1]; /hdfsファイルパスlocalpath = args [5]; // localで保存する場合は、保存しない場合、0} catch(system.out.println( "[filetrans]:input args error!"); } filetrans = new Filetrans(Head、hostname、hdfsnode、hdfsfilepath); head.equals( "ftp")){system.out .println( "filetrans ftp null"); 「https ")){system.out.println(" filetrans ftp null ")try(head.equals(" ftp ")) samplelines> 0){filetrans.ftp.writestream(instream、localpath、samples)}}} > 0){filetrans.http.download(head + "://" + hostname + "/" + filepath、localpath、samples) if(head == "ftp"){filetrans.ftp .disconnect(); } system.out.println( "[filetrans]:ファイルトランス成功!")}コンピレーションに問題がある場合は、Hadoopツールの記事に記載されています。自分で引用してください。
このツールは、FTPまたはHTTPをHDFに転送し、分析のために最初のNラインをローカルに保存できます
上記は、この記事で説明されているすべてのコンテンツです。
記事を友達と共有するか、コメントを残してください。ご支援ありがとうございます!