java hdfs下载文件到本地,java写文件到hdfs
本文实例为大家分享了利用爪哇实现分布式文件系统文件上传下载的具体代码,供大家参考,具体内容如下
1、pom.xml配置
!- 配置-房地产项目。建造。sourceencodingutf-8/项目。建造。源码编码maven。编译器。来源1.8/maven。编译器。来源maven。编译器。目标1.8/maven。编译器。目标Hadoop。版本3。1 .3/Hadoop。版本/属性!- 依赖库-依赖项依赖项groupIdorg.apache.hadoop/groupId artifact id Hadoop-common/artifact id版本$ { Hadoop。版本}/版本/依赖性依赖项groupIdorg.apache.hadoop/groupId artifact id Hadoop-MapReduce-client-core/artifact id版本$ { Hadoop。版本}/版本/依赖项/依赖项2、创建与删除
//导包导入org。阿帕奇。Hadoop。糖膏剂配置;导入org。阿帕奇。Hadoop。fs。文件系统;导入org。阿帕奇。Hadoop。fs。路径;导入Java。io。io异常;公共静态void main(String[] args ){ //初始化大数据文件系统的配置对象配置配置=新配置();//将大数据的配置信息传入conf.set(fs.defaultFS , HDFS ://192。168 .50 .10:9000 );//初始化大数据文件系统的句柄文件系统fs=null尝试{ //配置大数据的文件句柄信息文件系统。get(conf);//定义大数据的文件路径最终字符串路径=/test/kb16/Hadoop/ratings。CSV ;//初始化大数据的路径信息路径路径=新路径(路径);//如果文件路径存在就删除如果(fs。存在(路径)){系统。出去。println( DELETE fs。DELETE(path,true));}else{ //如果文件路径不存在就创建系统。出去。println( CREATE fs。CREATE(path));} } catch(io异常e){ e . printstacktrace();}最后{ //结束的时候,句柄还没有释放就进行释放如果(fs!=null){ try { fs。close();} catch(io异常e){ e . printstacktrace();} } }}3、文件上传
//导包导入org。阿帕奇。Hadoop。糖膏剂配置;导入org。阿帕奇。Hadoop。fs。文件系统;导入org。阿帕奇。Hadoop。fs。路径;导入Java。io。文件;进口
java.io.IOException;public static void main(String[] args) { //定义本地上传文件路径 final String formPath="E:\ratings.csv"; //本地文件不存在就报错,并强制让程序终止 if (!new File(formPath).exists()) { System.out.println(formPath +"doesnt 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 +"doesnt exit and cant 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 + "doesnt exist and cant 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 + "doesnt 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(); } } }}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。