上传本地文件到HDFS
2016-09-21 10:09
267 查看
本文程序参考《实战Hadoop》【刘鹏 主编】,如有侵权立即删除,仅作记录以备后查。
开发环境:
程序目录结构:
其中src文件夹下的Hdoop包存放java源码,lib目录为相关依赖库,conf文件夹存放hadoop的核心配置文件,hadoop库是根据lib文件夹下的jar包创建的user library。
源代码:
运行结果
注意:
hadoop核心配置文件需要放在当前工程目录的conf文件夹下,否则可能找不到fs.default.name的值,也可采用源代码中屏蔽掉的代码获取FileSystem类的对象。
开发环境:
选项 | 参数 |
---|---|
虚拟操作系统 | Centos 6.8 |
集成开发环境 | Eclipse Mars |
Hadoop version | 1.0.3伪分布式 |
JDK | 1.7.0_80 |
虚拟机 | Virtualbox |
其中src文件夹下的Hdoop包存放java源码,lib目录为相关依赖库,conf文件夹存放hadoop的核心配置文件,hadoop库是根据lib文件夹下的jar包创建的user library。
源代码:
package hadoop; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; //上传本地文件到HDFS public class CopyFile { public static void main(String[] args) throws IOException { //获取配置文件信息 Configuration conf = new Configuration(); conf.addResource(new Path("conf/core-site.xml")); //获取文件系统 // String fileUri = "hdfs://192.168.1.122:9000/"; // FileSystem hdfs = FileSystem.get(URI.create(fileUri),conf); FileSystem hdfs = FileSystem.get(conf); //文件名称 Path src = new Path("/root/install.log"); Path dst = new Path("/"); hdfs.copyFromLocalFile(src, dst); System.out.println("Upload to " + conf.get("fs.default.name")); FileStatus files[] = hdfs.listStatus(dst); for(FileStatus file:files){ System.out.println(file.getPath()); } } }
运行结果
注意:
hadoop核心配置文件需要放在当前工程目录的conf文件夹下,否则可能找不到fs.default.name的值,也可采用源代码中屏蔽掉的代码获取FileSystem类的对象。
相关文章推荐
- 详解HDFS Short Circuit Local Reads
- Hadoop_2.1.0 MapReduce序列图
- 使用Hadoop搭建现代电信企业架构
- 单机版搭建Hadoop环境图文教程详解
- ASP实现文件上传的方法
- jQuery多文件异步上传带进度条实例代码
- php轻松实现文件上传功能
- hadoop常见错误以及处理方法详解
- PHP文件上传问题汇总(文件大小检测、大文件上传处理)
- .net文件上传时实现通过文件头确认文件类型的方法
- ASP.NET实现大文件上传功能
- asp.net 文件上传与刷新与asp.net页面与iframe之间的数据传输
- ASP的chr(0)文件上传漏洞原理和解决方法介绍
- asp.net上传文件到数据库的解决方案
- javascript实现校验文件上传控件实例
- ajax 异步上传带进度条视频并提取缩略图
- jQuery插件实现文件上传功能(支持拖拽)
- jQuery实现文件上传进度条特效
- JQuery fileupload插件实现文件上传功能
- jQuery文件上传控件 Uploadify 详解