HDFS操作
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操作的更多相关文章
- python基础操作以及hdfs操作
目录 前言 基础操作 hdfs操作 总结 一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...
- Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务
本文转载自:https://blog.csdn.net/tototuzuoquan/article/details/73251616 1.Azkaban实战 Azkaba内置的任务类型支持comman ...
- 假期学习【三】HDFS操作及spark的安装/使用
1.安装 Hadoop 和 Spark 进入 Linux 系统,参照本教程官网“实验指南”栏目的“Hadoop 的安装和使用”,完 成 Hadoop 伪分布式模式的安装.完成 Hadoop 的安装以后 ...
- HDFS追本溯源:HDFS操作的逻辑流程与源码解析
本文主要介绍5个典型的HDFS流程,这些流程充分体现了HDFS实体间IPC接口和stream接口之间的配合. 1. Client和NN Client到NN有大量的元数据操作,比如修改文件名,在给定目录 ...
- Tutorial 02_熟悉常用的HDFS操作
Shell命令实现: (1)向HDFS 中上传任意文本文件,如果指定的文件在HDFS 中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件: (2) 从HDFS 中下载指定文件,如果本地文 ...
- 熟悉常用的HDFS操作
编程实现以下指定功能,并利用Hadoop提供的Shell命令完成相同任务: 在本地Linux文件系统的“/home/hadoop/”目录下创建一个文件txt,里面可以随意输入一些单词. 在本地查看文件 ...
- 第三章 熟悉常用的HDFS操作
一.Hadoop提供的Shell命令完成相同任务: 1.在本地Linux文件系统的“/home/hadoop/”目录下创建一个文件txt,里面可以随意输入一些单词. mkdir hadoop 在本地查 ...
- HDFS操作及小文件合并
小文件合并是针对文件上传到HDFS之前 这些文件夹里面都是小文件 参考代码 package com.gong.hadoop2; import java.io.IOException; import j ...
- 第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 遍历文件和目录 ...
随机推荐
- 5天揭秘js高级技术-第一天
一.基础杂记 1. document.write() <script type="text/javascript"> document.write('<h2> ...
- qq空间等闪动的文字怎么做?
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- R自动数据收集第二章HTML笔记1(主要关于handler处理器函数和帮助文档所有示例)
本文知识点: 1潜在畸形页面使用htmlTreeParse函数 2startElement的用法 3闭包 4handler函数的命令和函数体主要写法 5节点的丢弃,取出,取出标签名称.属性.属 ...
- java时间类型操作
java中Date类型与字符串相互转化 Date date = new Date(); System.out.println(date); //DateFormat类为一个 ...
- IE的F12开发人员工具不显示
IE的F12开发人员工具不显示问题: 按下F12之后,开发人员工具在桌面上看不到,但是任务栏里有显示.将鼠标放在任务栏的开发人员工具上,出现一片透明的区域,选中之后却出不来.将鼠标移动到开发人员工具的 ...
- permission denied to create extension "hstore"解决方案
首先 sudo -u postgres psql postgres 进入数据库后输入命令 ALTER USER mydb_user WITH SUPERUSER; (把某个用户设置为超级 ...
- css3伪类、伪元素选择器---nth-child()和nth-of-type()选择器的区别
p:nth-child(2) 要满足两个条件,1:选择的是p元素的父元素的第二个子元素 2:选择的第二个子元素必须是p元素,如果不满足,则将不显示 p:nth-of-type(2) 选择父元素下的 ...
- ListView加载性能优化---ViewHolder---分页
ListView是Android中一个重要的组件,可以使用它加列表数据,用户可以自己定义列表数据,同时ListView的数据加载要借助Adapter,一般情况下要在Adapter类中重写getCoun ...
- python之路十四
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- 网站底部版权信息区(bootstrap)
bootstrap的强大功能毋庸置疑.所以,网站底部版权信息区可以用bootstrap的“栅格系统”完成. 下面是一个未经处理的底部版权信息区的样式: <div class="cont ...