Hadoop API编程——FileSystem操作
来源:互联网 发布:刺马案真相知乎 编辑:程序博客网 时间:2024/05/01 19:27
基于前面配置的HDFS伪分布式模式进行实验,完全分布式模式下次来搞。。
public static StringhdfsUrl = "hdfs://192.168.1.106:8020";
@Test public voidtestHDFSMkdir() throws Exception{ //create HDFS folder创建一个文件夹 Configuration conf= new Configuration(); FileSystem fs =FileSystem.get(URI.create(hdfsUrl),conf); Path path = new Path("/test"); fs.mkdirs(path); }
@Test public voidtestCreateFile() throws Exception{ //create a file 创建一个文件 Configuration conf= new Configuration(); FileSystem fs = FileSystem.get(URI.create(hdfsUrl),conf); Pathpath = new Path("/test/a.txt"); FSDataOutputStream out = fs.create(path); out.write("hello hadoop".getBytes()); }
@Test publicvoid testRenameFile() throws Exception{ //rename afile 重命名 Configuration conf= new Configuration(); FileSystem fs =FileSystem.get(URI.create(hdfsUrl),conf); Path path = new Path("/test/a.txt"); Path newPath = new Path("/test/b.txt"); System.out.println(fs.rename(path,newPath)); }
@Test publicvoid testUploadLocalFile1() throws Exception{ //upload alocal file 上传文件 Configuration conf= new Configuration(); FileSystem fs =FileSystem.get(URI.create(hdfsUrl),conf); Path src = newPath("/home/hadoop/hadoop-1.2.1/bin/rcc"); Path dst = new Path("/test"); fs.copyFromLocalFile(src, dst); }
@Test public void testUploadLocalFile2() throws Exception{ //upload alocal file 上传文件 Configuration conf= new Configuration(); FileSystem fs =FileSystem.get(URI.create(hdfsUrl),conf); Path src = newPath("/home/hadoop/hadoop-1.2.1/bin/rcc"); Path dst = new Path("/test"); InputStream in = new BufferedInputStream(newFileInputStream(newFile("/home/hadoop/hadoop-1.2.1/bin/rcc"))); FSDataOutputStream out = fs.create(newPath("/test/rcc1")); IOUtils.copyBytes(in, out, 4096); }
public void testListFIles() throws Exception{//list files under folder 列出文件 Configuration conf= newConfiguration(); FileSystem fs =FileSystem.get(URI.create(hdfsUrl),conf); Path dst = newPath("/test"); FileStatus[] files =fs.listStatus(dst); for(FileStatus file:files){ System.out.println(file.getPath().toString()); }
public void testGetBlockInfo() throws Exception{ //list blockinfo of file 查找文件所在的数据块 Configuration conf= newConfiguration(); FileSystem fs =FileSystem.get(URI.create(hdfsUrl),conf); Path dst = newPath("/test/rcc"); FileStatus fileStatus =fs.getFileStatus(dst); BlockLocation[]blkloc=fs.getFileBlockLocations(fileStatus,0,fileStatus.getLen());//查找文件所在数据块 for(BlockLocation loc:blkloc){ for(int i=0;i <loc.getHosts().length;i++) System.out.println(loc.getHosts()[i]); } }
创建Java项目,File->New->Java Project,命名为TestHDFS
采用单元测试做实验,加入单元测试依赖包,项目导航栏里右键Build Path->AddLibraries->JUnit,以上操作完成如下:
引入hadoop相关外部jar包,Build Path->Add ExternalArchives,jar包包括:
hadoop/lib/*.jar,hadoop/hadoop-core-1.2.1.jar
创建一个java类,TestHDFS.java,继承junit.framework.TestCase,代码开始写:
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Test;
import junit.framework.TestCase;
public class TestHDFS extends TestCase {
@Test
}
@Test
}
还有很多函数,慢慢使用体会吧。。。
单元测试过程:
Eclipse左侧窗口,展开java类的方法,对某个需要进行单元测试的类右键,选择JUnitTest,如图所示。
先到这里吧。。。
API说明:
http://hadoop.apache.org/docs/current/api/
0 0
- Hadoop API编程——FileSystem操作
- Hadoop FIleSystem API JAVA操作。
- hadoop利用FileSystem API 执行hadoop文件读写操作
- HDFS操作——使用 FileSystem api 读写数据
- hadoop之FileSystem操作
- 一步一步跟我学习hadoop(6)----hadoop利用FileSystem API 执行hadoop文件读写操作
- The Hadoop FileSystem API Definition
- Hadoop系统操作类FileSystem
- hadoop中的文件操作 FileSystem
- Hadoop系统操作类FileSystem
- Hadoop FileSystem常用API的使用
- 用FileSystem API来操作HDFS
- hadoop常见问题——Browse the filesystem链接打不开
- Hadoop之——FileSystem与NameNode通信示意图
- Hadoop FileSystem
- Hadoop HelloWord Examples -对Hadoop FileSystem进行操作 - 基于Java
- Hadoop FileSystem API读取数据实例简单注释
- hadoop通过FileSystem API读取和写入数据
- [Phonegap+Sencha Touch] 移动开发76 让cordova app访问远端网站也能调用cordova插件功能
- 下拉列表测试用例
- 火凤相册制作大师 v1.0.1官方版
- 平板真的这么重要吗
- 简单的java读取excel表中的数据代码
- Hadoop API编程——FileSystem操作
- 我在修改leftButtonButtonItem所碰到的一些小问题
- 【Web API系列教程】1.4 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(下)
- 将dev gridControl表中原形数据导出到excel功能写法
- 百度地图API学习笔记
- qt编译中常出现的无法解析的外部符号问题
- 大尾端 小尾端和 htons函数
- hadoop: hdfs API示例
- 直接插入排序