ก่อนหน้านี้ฉันใช้การใช้สตรีมเพื่อดาวน์โหลดไฟล์ HTTP และ FTP ไปยังพื้นที่ท้องถิ่นและยังใช้การอัปโหลดไฟล์ท้องถิ่นไปยัง HDFS
ไฟล์ FTP และ HTTP ถูกถ่ายโอนไปยัง HDFS และไม่จำเป็นต้องคัดลอกไฟล์ FTP และ HTTP ไปยังเครื่องแล้วอัปโหลดไปยัง HDFS ในความเป็นจริงหลักการของสิ่งนี้เป็นเรื่องง่ายมาก ฮาร์ดดิสก์ในท้องถิ่นเพียงปล่อยให้หน่วยความจำเสร็จสิ้นกระบวนการถ่ายโอน
นี่คือลิงค์ไปยังเครื่องมือก่อนหน้า:
เครื่องมือ http
คำอธิบายลิงค์เครื่องมือ FTP
รหัสมีดังนี้:
นำเข้า Java.io.InputStream; นำเข้า java.io.OutputStream; นำเข้า Java.io.ioException; Filetrans คลาสสาธารณะ {Private String Head = "" "; สตริง hdfsfilepath) {this.hdfsfilepath = hdfsfilepath; ; head = head; ); filepath; hdfsutil.gethdfsnode ()+hdfsutil.gethdfspath ()); .Sethadoopdefault ("./ hadoop-default.xml"); filepath = "string hdfsfilepath =" "; ftp hostname = args [1]; /HDFS File Path localPath = args [5]; // ถ้าคุณบันทึกในเครื่องให้บันทึกบรรทัด n ก่อนหน้านี้หากไม่ได้บันทึกให้เติม 0} catch (Exception E) {System.out.println ("[filetrans]: อินพุต args ข้อผิดพลาด!"); } filetrans filetrans = filetrans ใหม่ (หัว, ชื่อโฮสต์, filepath, hdfsnode, hdfsfilepath); head.equals ("ftp")) {system.out .println ("filetrans ftp null"); "https")) {system.out.println ("filetrans ftp null"); samplelines> 0) {filetrans.ftp.writestream (stream, localpath, ตัวอย่าง); > 0) {filetrans.http.download (head + ": //" + โฮสต์ชื่อ + "/" + filepath, localpath, ตัวอย่าง);}} filetrans.hdfsutil.upload if (head == "ftp") {filetrans.ftp .disconnect ();}} catch (ioexception e) {system.out.println ("[filetrans]: ไฟล์ทรานส์ล้มเหลว!"); } system.out.println ("[filetrans]: ความสำเร็จของไฟล์ทรานส์!");}}หากมีปัญหาใด ๆ กับการรวบรวมมันถูกกล่าวถึงในบทความเกี่ยวกับเครื่องมือ Hadoop โปรดอ้างพวกเขาด้วยตัวเอง
เครื่องมือนี้สามารถถ่ายโอน FTP หรือ HTTP ไปยัง HDFS และบันทึกบรรทัด N แรกสำหรับการวิเคราะห์
ข้างต้นเป็นเนื้อหาทั้งหมดที่อธิบายไว้ในบทความนี้
โปรดใช้เวลาแบ่งปันบทความกับเพื่อนของคุณหรือแสดงความคิดเห็น เราจะขอบคุณอย่างจริงใจสำหรับการสนับสนุนของคุณ!