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 遍历文件和目录 ...
随机推荐
- spring事务传播性与隔离级别
事务的7种传播级别: 1)PROPAGATION_REQUIRED:支持当前事务,没有事务就新建一个. 2)PROPAGATION_SUPPORTS:支持当前事务,如果没有事务,以非事务方式处理 3) ...
- [Hadoop] Hadoop学习历程 [持续更新中…]
1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...
- 【ZOJ 3929】Deque and Balls(普通dp)
题意:给出一个序列,按照顺序一个一个放入双端队列(可以放在头部也可以放在尾部),一个队列的美丽指数就是数列中a[i]>a[i+1]的个数,求美丽指数的期望*2^n的值. 解题思路:方便起见,我们 ...
- C++网络套接字编程TCP和UDP实例
原文地址:C++网络套接字编程TCP和UDP实例作者:xiaojiangjiang 1. 创建一个简单的SOCKET编程流程如下 面向有连接的套接字编程 服务器: 1) 创建套接字(so ...
- HDU 3791二叉搜索树解题(解题报告)
1.题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3791 2.参考解题 http://blog.csdn.net/u013447865/articl ...
- virut详细分析
Virut分析 0x00.综合描述 virut样本的执行过程大体可以分为六步:第一步,解密数据代码,并调用解密后的代码:第二步,通过互斥体判断系统环境,解密病毒代码并执行:第三步,创建内存映射文件,执 ...
- js 判断客户端浏览器
var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { ...
- crontab详解
搜索 纠正错误 添加实例 crontab 提交和管理用户的需要周期性执行的任务 补充说明 crontab命令 被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成 ...
- .ashx中使用Session
在一般处理程序中给session赋值是报错:未将对象引用设置到对象的实例.
- hdu 1281 二分图最大匹配
对N个可以放棋子的点(X1,Y1),(x2,Y2)......(Xn,Yn);我们把它竖着排看看~(当然X1可以对多个点~) X1 Y1 X2 Y2 X3 Y3 ..... Xn Yn ...