HDFS操作
1.shell
1.1 创建目录
hadoop fs -mkdir 目录名(其中/为根目录)
1.2 遍历目录
hadoop fs -ls 目录名
1.3 删除目录
hadoop fs -rmr 目录名
1.4 修改目录
hadoop fs -mv 原目录 目标目录
1.5 上传文件
hadoop fs -put 文件原路径 文件HDFS路径
1.6 查看文件
hadoop fs -cat 文件名(需包含目录)
1.7 删除文件
hadoop fs -rmr 文件名
1.8 修改文件
hadoop fs -mv 源文件 目标文件 2.javaAPI
2.1 FileSystem类
1.1 写文件————create方法
1.2 读取文件————open方法
1.3 删除文件————delete方法
1.4 创建目录————mkdir方法
1.5 列出目录内容————listStatus方法
1.6 显示目录和文件元数据信息————getFileStatus方法
2.2 使用步骤
2.1 导入相关jar
2.2 得到Configuration对象
2.3 得到hdfs的URI对象
2.4 得到FileSystem对象
2.5 调用filesystem的相关方法 示例:
package testHadoop; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI; 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.Path;
import org.apache.hadoop.io.IOUtils; public class testJavaAPI { public static void main(String[] args) throws Exception{
String url = "hdfs://hadoop:9000";
Configuration conf = new Configuration();
URI uri = new URI(url);
FileSystem fs = FileSystem.get(uri, conf); listPath(url, fs,"/");//遍历目录 fs.mkdirs(new Path("/input/test"));//创建目录
System.out.println("创建文件夹成功!");
listPath(url, fs,"/input/test"); fs.delete(new Path("/input/test"));//删除目录
listPath(url, fs, "/input"); //创建文件
FSDataOutputStream out = fs.create(new Path("/input/test.ini"));
out.writeUTF("This is first test data!");
out.flush();
out.close();
System.out.println("创建文件成功!");
listPath(url, fs, "/input"); //读取文件
FSDataInputStream in = fs.open(new Path("/input/test.ini"));
IOUtils.copyBytes(in, System.out, 1024);
IOUtils.closeStream(in);
System.out.println("读取文件成功!"); //删除文件
fs.delete(new Path("/input/test.ini"));
System.out.println("删除文件成功!");
listPath(url, fs, "/input"); //本地文件上传到服务器
File file = new File("d:/data.txt");
FileInputStream in_local = new FileInputStream(file);
FSDataOutputStream out_local = fs.create(new Path("/input/data.ini"));
int i;
while ((i=in_local.read())!= -1){
out_local.write(i);
}
out_local.flush();
in_local.close();
out_local.close();
listPath(url, fs, "/input"); } private static void listPath(String url, FileSystem fs ,String path) throws FileNotFoundException, IOException {
FileStatus[] status = fs.listStatus(new Path(path));
for(FileStatus s : status){
String isDir = s.isDir()?"目录":"文件";
System.out.println(s.getPath().getName() + " " + isDir);
}
System.out.println("遍历文件夹成功");
} }

  

HDFS操作的更多相关文章

  1. python基础操作以及hdfs操作

    目录 前言 基础操作 hdfs操作 总结 一.前言        作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...

  2. Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务

    本文转载自:https://blog.csdn.net/tototuzuoquan/article/details/73251616 1.Azkaban实战 Azkaba内置的任务类型支持comman ...

  3. 假期学习【三】HDFS操作及spark的安装/使用

    1.安装 Hadoop 和 Spark 进入 Linux 系统,参照本教程官网“实验指南”栏目的“Hadoop 的安装和使用”,完 成 Hadoop 伪分布式模式的安装.完成 Hadoop 的安装以后 ...

  4. HDFS追本溯源:HDFS操作的逻辑流程与源码解析

    本文主要介绍5个典型的HDFS流程,这些流程充分体现了HDFS实体间IPC接口和stream接口之间的配合. 1. Client和NN Client到NN有大量的元数据操作,比如修改文件名,在给定目录 ...

  5. Tutorial 02_熟悉常用的HDFS操作

    Shell命令实现: (1)向HDFS 中上传任意文本文件,如果指定的文件在HDFS 中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件: (2) 从HDFS 中下载指定文件,如果本地文 ...

  6. 熟悉常用的HDFS操作

    编程实现以下指定功能,并利用Hadoop提供的Shell命令完成相同任务: 在本地Linux文件系统的“/home/hadoop/”目录下创建一个文件txt,里面可以随意输入一些单词. 在本地查看文件 ...

  7. 第三章 熟悉常用的HDFS操作

    一.Hadoop提供的Shell命令完成相同任务: 1.在本地Linux文件系统的“/home/hadoop/”目录下创建一个文件txt,里面可以随意输入一些单词. mkdir hadoop 在本地查 ...

  8. HDFS操作及小文件合并

    小文件合并是针对文件上传到HDFS之前 这些文件夹里面都是小文件 参考代码 package com.gong.hadoop2; import java.io.IOException; import j ...

  9. 第4章 HDFS操作

    目录 4.1 命令行操作 4.2 Java API操作 4.2.1 创建Java工程 4.2.2 读取数据 4.2.3 创建目录 4.2.4 创建文件 4.2.5 删除文件 4.2.6 遍历文件和目录 ...

随机推荐

  1. hdu2014青年歌手大赛

    Problem Description 青年歌手大奖赛中,评委会给参赛选手打分.选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分. Input 输入数据有多组,每组占 ...

  2. JAVA将数字字符串强制转换成整型变量----求参数之和实验代码(附流程图)

    一.设计思想 先将参数个数输出,并利用循环结果将参数逐个输出,再将字符串强制转化成整型,利用循环结构相加求和 二.程序流程图 三.源程序代码 package demo; public class Co ...

  3. [cocos] ( 01 ) cocos2d-x 3.x 开发 环境配置

    有几个需要注意的问题 Windows上使用时, Unable to execute dex: Multiple dex files define 在eclipse中libcoco2dx的Java Bu ...

  4. Ubuntu 手动更新firefox的flash插件

    Ubuntu下 Firefox更新flash插件老是提示失败,自己动手丰衣足食啊. 1.下载tar文件,地址:http://get.adobe.com/cn/flashplayer/?no_redir ...

  5. svn 版本迁移到 git 仓库

    1.拉取 svn代码并转成 git 版本 git svn fetch http://svn.qtz.com/svn/qtz_code/java/qtz_sm/project/qtz_sm -Auser ...

  6. Yii ActiveRecord 的via和viaTable示例

    Yii中,将两个不相关的表利用中间表关联有via和viaTable两种方法,这里通过用户权限查询来进行示例. 关系如上,需要建立三个表 用户表 权限表 用户表 数据: 权限表 数据: 关联表 数据: ...

  7. Thinkphp 第二篇:如何将一个外部项目导入到Thimkphp环境中

    一:到这篇博文的开头,假设我们的Xmapp环境已经搭建好了,并且成功的安装了Thinkphp的环境了. 1:Xmapp安装成功截图: 2:Thinkphp安装成功截图: 二:Thinkphp中各个文件 ...

  8. 坑爹的微信支付v3,其实没有那么坑

    http://www.cnblogs.com/zskbll/p/wxpay.html 研究微信开发一年多了,每个新接口,都会第一时间进行研究.微信支付开放很久,一直没机会接触到支付接口,等了好久终于从 ...

  9. php检测文件内容编码的方法

    核心用到的是mb_convert_encoding函数,示例代码如下: <?php header("Content-type: text/html; charset=utf-8&quo ...

  10. ContextMenuStrip 类

    表示快捷菜单 命名空间:   System.Windows.Forms程序集:  System.Windows.Forms(位于 System.Windows.Forms.dll) 继承层次结构 Sy ...