يدرس هذه المقالة بشكل أساسي طريقة الوصول إلى API Java API من HDFS. يظهر الرمز المحدد أدناه وله تعليقات مفصلة.
كانت الوتيرة سريعة بعض الشيء مؤخرًا. عندما يكون لديك وقت ، يمكنك أن تختتم هذا
استيراد java.io.ioException ؛ استيراد java.net.uri ؛ استيراد java.net.urisyntaxexception ؛ استيراد org.apache.hadoop.conf.configuration ؛ import org.apache.hadoop.fs.blocklocation ؛ import org.hadoop.fs.filestatus org.apache.hadoop.fs.filesystem ؛ import org.apache.hadoop.fs.fileutil ؛ import org.apache.hadoop.fs.path ؛ import org.apache.hadoop.hdfs.distributedfilesystem ؛
/** * احصل على نظام ملفات HDFS * return * throws ioException * throws urisyntaxexception */نظام الملفات الثابتة العامة getFilesystem () System // fileystem fs = fileystem.get (conf) ؛ // عنوان نظام الملف المحدد uri uri = new uri ("hdfs: // hy: 9000") ؛ static void mkdir () يلقي استثناء {// الحصول على ملفات ملفات الملفات fs = getFileSystem () ؛ // إنشاء دليل ملف fs.mkdirs (مسار جديد ("HDFS: // hy: 9000/hy/weibo") استثناء {// الحصول على نظام ملفات الملفات fs = getFilesystem () ؛ // حذف الملف أو دليل الملفات fs.delete (مسار جديد ("HDFS: // hy: 9000/hy/weibo") نظام الملفات fs = getFileSystem () ؛ // اذكر محتويات الدليل filestatus [] status = fs.liststatus (مسار جديد ("hdfs: // hy: 9000/hy/")) {system.out.println (path) ؛} // إطلاق المورد fs.close () ؛}/** * قم بتحميل الملف إلى HDFS * Throws استثناء */public static void copytohdfs () يلقي استثناء {// get get file system fs = getfilesystem () ؛ PATH ("/home/hadoop/temp.jar") ؛ // إذا كنت بحاجة إلى الاختبار في Windows ، فأنت بحاجة إلى تغييره إلى المسار تحت Windows ، على سبيل المثال ، e: //temp.jarpath srcpath = new path ("e: //temp.jar") ؛ // مسار المقصود dstpath = new path: // hy: 9000/hy/weibo ") ؛ fs.copyfromlocalfile (SRCPath ، dStPath) ؛ // قم بإصدار المورد fs.close () ؛}/*** قم بتنزيل الملف من HDFS* Throos استثناء*/public static void getFile () throws stisple المسار ("HDFS: // hy: 9000/hy/weibo/temp.jar") ؛ // المسار الافتراضي ، الافتراضي هو Linux // إذا تم اختباره تحت Windows ، فأنت بحاجة إلى التغيير إلى المسار تحت Windows ، مثل c: // user/adsy/desktop/path dstpath = new path ("d: //") ؛ المورد fs.close () ؛}/*** احصل على معلومات حول نقاط كتلة HDFS* athrows استثناء*/public static void gethdfsnodes () يلقي استثناء {// الحصول على ملفات ملفات fs fs = getFilesystem () datanodestats = hdfs.getDatanodestats () ؛ // loop traversal for (int i = 0 ؛ i <datanodestats.length ؛ i ++) {system.out.println ("datanote_" + i + "_name:" + datanodestats [i] .gethostname () ؛ من ملف في مجموعة HDFS * Throws استثناء */public static void getFilelocal () يلقي استثناء {// الحصول على ملفات ملفات الملفات fs = getFilesystem () ؛ // path path path path = new path ("hdfs: // hy: 9000/weibo/temp.jar") ؛ fs.getFileStatus (path) ؛ // احصل على قائمة موقع ملفات الملف blocklocation [] blocklocations = fs.getFileBlockLocations (filestatus ، 0 ، filestatus.getlen ()) ؛ blocklocations [i] .gethosts () ؛ system.out.println ("block_" + i + "_location:" + hosts [0]) ؛} // reext the resource fs.close () ؛}ما سبق هو المحتوى الكامل لهذه المقالة حول طريقة الوصول إلى HDFS Java API. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!