package com.hdfs;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import java.nio.file.Files;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class HDFSUtils {

private static final String HDFS_PATH = "hdfs://test1:9000/opt/hadoop-1.2.1/fff/hadooptest.txt";
private static final String HDFS_File_PATH = "hdfs://test1:9000";
private static final String ADD_DIR_PATH = "/firstdir";
private static final String UPLOAD_DIR_PATH = "/firstdir/firstfile";

public static void main(String[] args) throws Exception {
// //读取文件内容
// //将hdfs协议转换成http协议
// URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
// final URL url = new URL(HDFS_PATH);
// final InputStream in = url.openStream();
// /**
// * 读取文件内容
// * @param in 输入流
// * @param out 输出流
// * @param buffsize 缓冲区大小
// * @param close 是否关闭流
// */
// IOUtils.copyBytes(in, System.out, 1024, true);
//获取hdfs文件类
final FileSystem fileSystem = FileSystem.get(new URI(HDFS_File_PATH), new Configuration());
//创建文件夹
// mkdir(fileSystem);
//上传文件
// upload(fileSystem);
//下载文件
// download(fileSystem);
//删除文件
// deleteFile(fileSystem);

}

/**
* @param fileSystem
* @throws IOException
*/
private static void deleteFile(final FileSystem fileSystem)
throws IOException {
fileSystem.delete(new Path(UPLOAD_DIR_PATH), true);
}

/**
* @param fileSystem
* @throws IOException
*/
private static void download(final FileSystem fileSystem)
throws IOException {
FSDataInputStream in = fileSystem.open(new Path(UPLOAD_DIR_PATH));
IOUtils.copyBytes(in, System.out, 1024, true);
}

/**
* @param fileSystem
* @throws IOException
* @throws FileNotFoundException
*/
private static void upload(final FileSystem fileSystem) throws IOException,
FileNotFoundException {
FSDataOutputStream out = fileSystem.create(new Path(UPLOAD_DIR_PATH));
FileInputStream in = new FileInputStream("e:/log.txt");
IOUtils.copyBytes(in, out, 1024, true);
}

/**
* @param fileSystem
* @throws IOException
*/
private static void mkdir(final FileSystem fileSystem) throws IOException {
fileSystem.mkdirs(new Path(ADD_DIR_PATH));
}

}

eclipse 对 hadoop1.2.1 hdfs 文件操作的更多相关文章

  1. Hadoop之HDFS文件操作常有两种方式(转载)

    摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件    命令行     Java API HD ...

  2. hadoop的hdfs文件操作实现上传文件到hdfs

    这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...

  3. HDFS文件操作(命令行)

    HDFS是一种分布式文件系统,为MapReduce这种框架下的海量数据分布式处理而设计. Hadoop之HDFS文件操作常有两种方式,一种是命令行方式,即Hadoop提供了一套与Linux文件命令类似 ...

  4. Hadoop之HDFS文件操作

    摘要:Hadoop之HDFS文件操作常有两种方式.命令行方式和JavaAPI方式.本文介绍怎样利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件    命令行     Java API HD ...

  5. JAVA API 实现hdfs文件操作

    java api 实现hdfs 文件操作会出现错误提示: Permission denied: user=hp, access=WRITE, inode="/":hdfs:supe ...

  6. HDFS文件操作

    hadoop装好后,文件系统中没有任何目录与文件 1. 创建文件夹 hadoop fs -mkdir -p /hkx/learn 参数-p表示递归创建文件夹 2. 浏览文件 hadoop fs -ls ...

  7. Hadoop HDFS文件操作

    1.创建目录 import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.ha ...

  8. thrift实现HDFS文件操作

    thrift 文件如下 namespace java com.pera.file.transform struct  File{     1:string path ,     2:string co ...

  9. eclipse hadoop环境搭建 查看HDFS文件内容

    1.下载插件 hadoop-eclipse-plugin-2.5.2.jar放入eclipse/plugin 2.准备hadoop-2.5.0-cdh5.3.6 使用WinSCP远程连接虚拟机,复制h ...

随机推荐

  1. laravel发布订阅

    1.php artisan make:command RedisSubscribe 在app console中会生成RedisSubscribe.php文件 <?php namespace Ap ...

  2. Linux是cat、tail、head查看文件任意几行的数据

    Linux是cat.tail.head查看文件任意几行的数据 一.使用cat.tail.head组合 1.查看最后100行的数据 cat filename | tail -n 100 2.查看100到 ...

  3. SpringBoot-将servlet容器变成undertow测试tomcat吞吐量

    将Servlet容器变成Undertow 默认情况下,Spring Boot 使用 Tomcat 来作为内嵌的 Servlet 容器 可以将 Web 服务器切换到 Undertow 来提高应用性能.U ...

  4. ELK基础原理

    搜索引擎 索引组件:  获取数据-->建立文档-->文档分析-->文档索引(倒排索引)    搜索组件:  用户搜索接口-->建立查询(将用户键入的信息转换为可处理的查询对象) ...

  5. Centos7下安装Docker(详细的新手装逼教程)

    早就听说过Docker,一直不清楚是个啥,今天捣鼓了一下,这里做个记录. --------------------------------------------------------------- ...

  6. python 中为什么不需要重载 参数*arg和**args

    函数重载主要是为了解决两个问题. (1)可变参数类型. (2) 可变参数个数. 另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两 ...

  7. rosetta geometric constraint file(用于match和design)

    cst(constraint file)文件示例: CST::BEGIN TEMPLATE:: ATOM_MAP: atom_name: C6 O4 O2 TEMPLATE:: ATOM_MAP: r ...

  8. OAuth2认证和授权:AuthorizationCode认证

    前面的OAuth2认证,里面的授权服务器都是用的identityserver4搭建的 ids4没有之前一般都是Owin搭建授权服务器,博客园有很多 ids4出来后,一般都是用ids4来做认证和授权了, ...

  9. centos----------centos下如何安装phpstorm

    1.首先打开centos下的谷歌浏览器,找到phpstorm官网下载linux版本.PhpStorm-2016.3.2.tar.gz 2.然后gunzip PhpStorm-2016.3.2.tar. ...

  10. sublime-text3按tab跳出括号

    功能 通过按tab自动跳过右括号,右引号,虽然也可以按右方向键,但离得太远按起来太麻烦 在首选项->按键绑定里添加: { "keys": ["tab"], ...