Эта статья в основном изучает метод доступа Java API HDFS. Конкретный код показан ниже и имеет подробные комментарии.
Темп был немного быстрым в последнее время. Когда у вас будет время, вы можете завершить это
Импорт java.io.ioexception; импорт java.net.uri; импорт java.net.urisyntaxexception; импорт org.apache.hadoop.conf.configuration; импорт org.apache.hadoop.fs.blocklocation; импорт org.apache.hadoop.fs.filestatus; importyStemStemStemStemStemStemStemStemStem.FileshStem.fileshStem.fileshStem.fileshStem.fileshStem.fileshStem.fileshStem.fileshStem. org.apache.hadoop.fs.filesystem; import org.apache.hadoop.fs.fileutil; import org.apache.hadoop.fs.path; импорт org.apache.hadoop.hdfs.distributedfilesystem; импорт org.apache.hadoop.hdfs.protocol.datanodem;
/** * Получить файловую систему HDFS * @return * @Throws ioException * @Throws urisyntaxException */public static fileSystem getFilesyStem () Throws IoException, urisyntaxExcept System // FileSystem fs = fileystem.get (conf); // указанный адрес файловой системы uri uri = new URI ("hdfs: // hy: 9000"); // возвращать указанную файловую систему // Если вы тестируете локально, вам нужно использовать этот метод, чтобы получить файловую систему fileystem fstem. Exception */public static void mkdir() throws Exception{//Get file system FileSystem fs = getFileSystem();//Create file directory fs.mkdirs(new Path("hdfs://hy:9000/hy/weibo"));//Release resource fs.close();}/** * Delete file or file directory* @throws Exception */public static void rmdir () выбрасывает exception {// Получить файловую систему файловой системы FS = getFilesyStem (); // DELETE файл или файловый каталог FS.Delete (новый путь ("hdfs: // hy: 9000/hy/weibo"), true); // Ресурс освобождения fs.close ();}/** Get All Files* @thralless*/witulless*/@thralless*/@thralless*/@thlaills*/@thlaills* @thralles* @thlaills* @thlaills statile (); Throws Exception {// Получить файловую систему файловой системы FILSTEM FS = getFilesyStem (); // Перечислите содержание каталога FiLESTATUS [] status = fs.ListStatus (новый путь ("hdfs: // hy: 9000/hy/")); // Получение пути файлов в PATHSTARY PATHPATHS = FILEUTIL.STAT2PATHS (/////cathop -pailOPS); listedPaths) {System.out.println(path);}//Release the resource fs.close();}/** * Upload the file to HDFS * @throws Exception */public static void copyToHDFS() throws Exception{//Get file object FileSystem fs = getFileSystem();//The source file path is the path under Linux Path srcPath = new Path ("/home/hadoop/temp.jar"); // Если вам нужно тестировать в Windows, вам нужно изменить его на путь под окнами, например, e: //temp.jarpath srcpath = new Path ("E: //temp.jar"); // path Path Destpath = new Path ("hdfs: // hy: 9000/weibo repalue"//weibo repalue "//weibo rewlice"//weibo repall "); fs.copyfromlocalfile (srcpath, dstpath); // выпустить ресурс fs.close ();}/*** Загрузите файл из hdfs* @throws exception*/public void getFile () Throws Exception {// Получить файловую систему fileStem fs = getFilesyStem (); Path ("hdfs: // hy: 9000/hy/weibo/temp.jar"); // Путь по умолчанию, по умолчанию - это linux // Если тестируется под окнами, вам нужно перейти на путь под окнами, такой как c: // user/andy/desktop/path dstpath = new Path ("D: //); DSTPATH); // Выпустить ресурс fs.close ();}/*** Получить информацию о точках кластера HDF* @Throws Exception*/public static void gethdfsnodes (), бросает исключение {// Получить файловую систему файловой системы fs = getFilesyStem (); // Получить распределенную систему файлов hdfs = = // (DistributedFilesyStem) fs; // Получить все узлы dataNodeInfo [] dataNodestats = hdfs.getDatanoDestats (); // петлевой травер (int i = 0; i <datanoDestats.length; i ++) {System.out.println ("DataNote_" + i + "_name:" + DataNoDestats [i] .gethostName ());} // Выпустить ресурс fs.close ();}/*** Найти местоположение файла в кластере HDFS* @Throws Exception*/public void getFileLocal () throws exection {// get файловая система файла fsstem fs = getFilesyStem (); Path ("hdfs: // hy: 9000/hy/weibo/temp.jar"); // Получить файл файл fileStatus filestatus = fs.getfilestatus (path); // Получить список блоков блока файла [] blocklocations = fs.getfileblocklocations (filestatus, 0, filestatus <blocklocations.length;Выше приведено все содержание этой статьи о методе доступа HDFS Java API. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!