


So implementieren Sie das Hoch- und Herunterladen von HDFS-Dateien in Java
1、pom.xml配置
<!--配置--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <hadoop.version>3.1.3</hadoop.version> </properties> <!--依赖库--> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>${hadoop.version}</version> </dependency> </dependencies>
2、创建与删除
//导包 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import java.io.IOException; public static void main( String[] args ){ //初始化hadoop文件系统的configration对象 Configuration conf = new Configuration(); //将hadoop的configration信息传入 conf.set("fs.defaultFS","hdfs://192.168.50.102:9000"); //初始化Hadoop文件系统的句柄 FileSystem fs=null; try { //配置Hadoop的文件句柄信息 fs=FileSystem.get(conf); //定义Hadoop的文件路径 final String PATH="/test/kb16/hadoop/ratings.csv"; //初始化Hadoop的路径信息 Path path = new Path(PATH); //如果文件路径存在就删除 if (fs.exists(path)) { System.out.println("DELETE "+fs.delete(path, true)); }else{ //如果文件路径不存在就创建 System.out.println("CREATE "+fs.create(path)); } } catch (IOException e) { e.printStackTrace(); }finally { //结束的时候,句柄还没有释放就进行释放 if (fs!=null) { try { fs.close() ; }catch (IOException e) { e.printStackTrace(); } } } }
3、文件上传
//导包 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import java.io.File; import java.io.IOException; public static void main(String[] args) { //定义本地上传文件路径 final String formPath="E:\\ratings.csv"; //本地文件不存在就报错,并强制让程序终止 if (!new File(formPath).exists()) { System.out.println(formPath +"doesn't exits"); return; } //初始化hadoop文件系统的configration对象 Configuration conf = new Configuration(); //将hadoop的configration信息传入 conf.set("fs.defaultFS","hdfs://192.168.50.102:9000"); //初始化Hadoop文件系统的句柄 FileSystem fs=null; try { //将config信息传入 fs=FileSystem.get(conf); //定义上传到HDFS的路径 final String toPath="/test/kb16/hive"; //初始化路径 Path to =new Path(toPath); //如果文件路径存在不执行,如果文件路径不存在就尝试创建,如果创建失败就跳过 if (!fs.exists(to)&& !fs.mkdirs(to)) { System.out.println(toPath +"doesn't exit and can't be created"); return; } //初始化上传文件路径 Path from=new Path(formPath); //利用方法将本地文件复制到HDFS中 fs.copyFromLocalFile(from, to); System.out.println("succeed in copying from "+formPath+" to "+toPath); } catch (IOException e) { e.printStackTrace(); System.out.println("FAILURE"); }finally{ //如果结束Hadoop文件系统句柄没有关闭,利用方法进行句柄释放 if (null!=fs) { try { fs.close(); } catch (IOException e) { e.printStackTrace(); } } } }
4、文件下载
//导包 import com.google.inject.internal.cglib.core.$LocalVariablesSorter; import com.google.inject.internal.cglib.proxy.$Factory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import java.io.File; import java.io.IOException; public class Download { public static void main(String[] args) { //定义文件下载路径 final String toPath = "C:\\Users\\Jialin\\Desktop"; //获取路径 File to = new File(toPath); //如果路存在或者文件路径不存在但是创建成功就不执行if方法 if (!to.exists()&&!to.mkdirs()) { System.err.println(toPath + "doesn't exist and can't be created"); return; } //初始化hadoop文件系统的configration对象 Configuration config = new Configuration(); //将hadoop的configration信息传入 config.set("fs.defaultFS", "hdfs://192.168.50.102:9000"); //初始化Hadoop文件系统的句柄 FileSystem fs = null; try { //将config信息传入 fs = FileSystem.get(config); //定义下载文件路径 final String fromPath = "/test/kb16/hive/ratings.csv"; //获取路径信息 Path from = new Path(fromPath); //如果指定下载文件不存在就退出 if (!fs.exists(from)) { System.err.println(toPath + "doesn't exist "); return; } //获取文件下载路径信息 Path _to = new Path(toPath); //利用方法将Hadoop文件下载到本地 fs.copyToLocalFile(from,_to); System.out.println("succeed in downloading from "+fromPath+" to"+toPath); } catch (IOException e) { e.printStackTrace(); System.out.println("FAILURE"); } finally { //如果结束Hadoop文件系统句柄没有关闭,利用方法进行句柄释放 if (null != fs) try { fs.close(); } catch (IOException e) { e.printStackTrace(); } } } }
Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Hoch- und Herunterladen von HDFS-Dateien in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.
