1、原理、步骤

2、HDFS客户端示例代码

package com.ares.hadoop.hdfs;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException; import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class HDFSTest {
private static final Logger LOGGER = Logger.getLogger(HDFSTest.class); private FileSystem fs = null; @Before
public void setUp() throws IOException, URISyntaxException, InterruptedException {
Configuration conf = new Configuration();
// conf.set("fs.defaultFS", "hdfs://HADOOP-NODE1:9000");
// URI uri = new URI("hdfs://HADOOP-NODE1:9000");
// this.fs = FileSystem.get(uri, conf, "HADOOP");
this.fs = FileSystem.get(conf);
}
@After
public void tearDown() throws IOException {
// TODO Auto-generated method stub
this.fs.close();
} @Test
public void testGET() throws IOException {
// TODO Auto-generated method stub
LOGGER.debug("HDFSTest: GET FILE TEST");
Path path = new Path("hdfs://HADOOP-NODE1:9000/jdk-7u60-linux-x64.tar.gz");
FSDataInputStream fsDataInputStream = this.fs.open(path);
FileOutputStream fileOutputStream = new FileOutputStream("./testdata/get-test-jdk.tar.gz");
IOUtils.copy(fsDataInputStream, fileOutputStream);
} @Test
public void testPUT() throws IOException {
// TODO Auto-generated method stub
LOGGER.debug("HDFSTest: PUT FILE TEST");
Path path = new Path("hdfs://HADOOP-NODE1:9000/put-test-jdk.tar.gz");
FSDataOutputStream fsDataOutputStream = this.fs.create(path);
FileInputStream fileInputStream = new FileInputStream("./testdata/test-jdk.tar.gz");
IOUtils.copy(fileInputStream, fsDataOutputStream);
} @Test
public void testGET_NEW() throws IOException {
// TODO Auto-generated method stub
LOGGER.debug("HDFSTest: GET_NEW FILE TEST");
Path src = new Path("hdfs://HADOOP-NODE1:9000/jdk-7u60-linux-x64.tar.gz");
Path dst = new Path("./testdata/get-test-new-jdk.tar.gz");
this.fs.copyToLocalFile(src, dst);
} @Test
public void testPUT_NEW() throws IOException {
// TODO Auto-generated method stub
LOGGER.debug("HDFSTest: PUT_NEW FILE TEST");
Path src = new Path("./testdata/test-jdk.tar.gz");
Path dst = new Path("hdfs://HADOOP-NODE1:9000/put-test-new-jdk.tar.gz");
this.fs.copyFromLocalFile(src , dst);
} @Test
public void testMKDIR() throws IOException {
// TODO Auto-generated method stub
LOGGER.debug("HDFSTest: MKDIR TEST");
Path f = new Path("/mkdir-test/testa/testb");
this.fs.mkdirs(f);
} @Test
public void testRM() throws IOException {
// TODO Auto-generated method stub
LOGGER.debug("HDFSTest: RM TEST");
Path f = new Path("/mkdir-test");
this.fs.delete(f, true);
} @Test
public void testLIST() throws IOException {
// TODO Auto-generated method stub
LOGGER.debug("HDFSTest: LIST TEST");
Path f = new Path("/");
//LIST FILES
RemoteIterator<LocatedFileStatus> files = this.fs.listFiles(f, true);
while (files.hasNext()) {
LocatedFileStatus file = files.next();
LOGGER.debug(file.getPath());
LOGGER.debug(file.getPath().getName());
} //LIST DIRS
FileStatus[] files2 = this.fs.listStatus(f);
// for (int i = 0; i < files2.length; i++) {
// LOGGER.debug(files2[i].getPath().getName());
// }
for (FileStatus fileStatus : files2) {
LOGGER.debug(fileStatus.getPath().getName());
LOGGER.debug(fileStatus.isDirectory());
}
}
}

【Hadoop】HDFS客户端开发示例的更多相关文章

  1. java 调用webservice (asmx) 客户端开发示例

    这是本人第一次写博客,其实就是自己做个笔记,写的很粗糙,也希望能给跟我遇到同样问题的你一点帮助. 因为最近有个项目要调用webservice接口,之前接触的都是Java开发服务端和客户端的接口,开发前 ...

  2. hadoop学习day2开发笔记

    1.将hdfs客户端开发所需的jar导入工程(jar包可在hadoop安装包中找到common/hdfs) 2.写代码 要对hdfs中的文件进行操作,代码中首先需要获得一个hdfs的客户端对象 Con ...

  3. Hadoop HDFS的shell(命令行客户端)操作实例

    HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls                  功能:显示目录信息 示例: hadoop fs ...

  4. 使用HDFS客户端java api读取hadoop集群上的信息

    本文介绍使用hdfs java api的配置方法. 1.先解决依赖,pom <dependency> <groupId>org.apache.hadoop</groupI ...

  5. Hadoop JAVA HDFS客户端操作

    JAVA HDFS客户端操作 通过API操作HDFS org.apache.logging.log4jlog4j-core2.8.2org.apache.hadoophadoop-common${ha ...

  6. Hadoop之HDFS客户端操作

    1. HDFS 客户端环境准备 1.1 windows 平台搭建 hadoop 2.8.5 2. 创建Maven工程 # pom.xml <dependencies> <depend ...

  7. Hadoop HDFS分布式文件系统设计要点与架构

      Hadoop HDFS分布式文件系统设计要点与架构     Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...

  8. 【转】Hadoop HDFS分布式环境搭建

    原文地址  http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统 ...

  9. Hadoop HDFS分布式文件系统设计要点与架构(转摘)

    Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Ha ...

随机推荐

  1. Git-cheatsheet

  2. HDU1248 (完全背包简单变形)

    寒冰王座 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  3. python基础===正则表达式(转)

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  4. linux下C的GBD调试学习笔记(转载)

    1. 单步执行和跟踪函数调用 看下面的程序: 例 10.1. 函数调试实例 #include <stdio.h> int add_range(int low, int high) { in ...

  5. 2.shell变量

    shell的变量的介绍 shell的变量分为系统变量和用户自定义变量系统变量:$HOME, $PWD, $SHELL, $USER等等,这些变量系统已经定义好了,我们可以直接拿来用用户自定义变量:我们 ...

  6. scrapy模拟知乎登录(无验证码机制)

    ---恢复内容开始--- spiders 文件夹下新建zhihu.py文件(从dos窗口中进入虚拟环境,再进入工程目录之后输入命令 scrapy genspider zhihu www.zhihu.c ...

  7. PHP开发经常遇到的几个错误

    错误1:foreach循环后留下悬挂指针 在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法: $arr = array(1,2,3,4); foreach($a ...

  8. 分享HTTP Status 404(The requested resource is not available)的几种解决方案解决方法

    下面是直接copy的,如果有什么疑问or补充,请不吝指教! 原文地址:http://www.myexception.cn/java-web/1480013.html 这个问题搞了我两天的时间,找了各种 ...

  9. 51nod 1265 四点共面【计算几何+线性代数】

    1265 四点共面 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共 ...

  10. HDU 1015 Safecracker【数值型DFS】

    Safecracker Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...