[b0014] HDFS 常用JAVA 操作实战
目的:
学习用java进行的常用hdfs操作
参考:
环境:
hadoop2.6.4
win7 下的eclipse环境调试已经配置好,参考前面的文章
代码:
1. 创建文件夹
package hdfs; import java.io.IOException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; /**
*
* @author Administrator
* 创建文件夹,如果不存在
*/
public class CreateFolder { public static void main(String[] args) throws IOException {
Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://ssmaster:9000/");
FileSystem fs = FileSystem.get(conf) ;
Path path = new Path("/output"); if(! fs.exists(path)){
fs.mkdirs(path);
}
}
}
以流的方式下载文件
package hdfs; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import org.apache.commons.compress.utils.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; /**
* 功能: 将 hdfs://ssmaster:9000/data/paper.txt下载到Windows下c:\paper.txt
* 调用方式:windows下执行,eclipse中执行
*/ public class Down_Load { public static void main(String[] args) { Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://ssmaster:9000/"); FileSystem fs = null;
Path src = null;
FSDataInputStream in = null;
FileOutputStream out = null; src = new Path("hdfs://ssmaster:9000/data/paper.txt" ); try { fs = FileSystem.get(conf) ;
in = fs.open(src); } catch (IOException e) {
e.printStackTrace();
} try {
out = new FileOutputStream ("c:\\paper.txt"); //等效 c:/paper.txt
} catch (FileNotFoundException e) {
e.printStackTrace();
} try {
IOUtils.copy(in, out);
} catch (IOException e) {
e.printStackTrace();
} }
}
2 上传文件
package hdfs; import java.io.IOException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; /**
*
* @author Administrator
* 上传本地文件
*/
public class UploadFile { public static void main(String[] args) throws IOException {
Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://ssmaster:9000/");
FileSystem fs = FileSystem.get(conf) ;
Path path = new Path("/output");
Path src = new Path("c:/paper.txt"); fs.copyFromLocalFile(false, true, src, path); }
}
3 下载文件
package hdfs; import java.io.IOException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; /**
*
* @author Administrator
* 上传本地文件
*/
public class DownFile { public static void main(String[] args) throws IOException {
Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://ssmaster:9000/");
FileSystem fs = FileSystem.get(conf) ;
Path hdfs = new Path("/output/paper.txt");
Path win7 = new Path("c:/paper_download.txt"); fs.copyToLocalFile(hdfs, win7); }
}
4 删除文件
package hdfs; import java.io.IOException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; /**
*
* @author Administrator
* 删除hdfs文件,如何文件不存在,也运行正常
*/
public class DeleteFile { public static void main(String[] args) throws IOException {
Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://ssmaster:9000/");
FileSystem fs = FileSystem.get(conf) ;
Path hdfs = new Path("/output/paper.txt");
fs.delete(hdfs, true); }
}
5 显示目录信息
package hdfs; import java.io.IOException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; /**
*
* @author Administrator
* 显示某个目录下的文件
*/
public class ListFiles { public static void main(String[] args) throws IOException {
Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://ssmaster:9000/");
FileSystem fs = FileSystem.get(conf) ;
Path hdfs = new Path("/"); FileStatus [] files = fs.listStatus(hdfs);
for (FileStatus file:files) { System.out.print(file.getPath().getName());
System.out.print("\t"+ file.isDirectory());
System.out.print("\t"+ file.getOwner());
System.out.print("\n");
} }
}
总结:
HDFS JAVA API 调用初步学会使用。该篇章翻过去,后续用什么再学
后续:
有空将文件系统的常用操作实现,搜索、递归显示、查看文件内容
参考:
[b0014] HDFS 常用JAVA 操作实战的更多相关文章
- hadoop学习(五)----HDFS的java操作
前面我们基本学习了HDFS的原理,hadoop环境的搭建,下面开始正式的实践,语言以java为主.这一节来看一下HDFS的java操作. 1 环境准备 上一篇说了windows下搭建hadoop环境, ...
- HDFS的Java操作
实验环境: Windows 10 Eclipse Mars.2 Release (4.5.2) CentOS 7 Hadoop-2.7.3 先决条件: 1) Windows上各环境变量已配置OK. ...
- properties文件简介及其常用Java操作
一.properties文件简介 java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值&q ...
- HDFS常用API操作 和 HDFS的I/O流操作
前置操作 创建maven工程,修改pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
- HDFS常用文件操作
put 上传文件 hadoop fs -put wordcount.txt /data/wordcount/ text 查看文件内容 hadoop fs -text /output/wo ...
- hadoop hdfs的java操作
访问hdfs上的文件并写出到输出台 /** * 访问hdfs上的文件并写出到输出台 * @param args */ public static void main(String[] args) { ...
- HDFS常用Java API
- hadoop学习(三)HDFS常用命令以及java操作HDFS
一.HDFS的常用命令 1.查看根目录下的信息:./hadoop dfs -ls 2.查看根目录下的in目录中的内容:./hadoop dfs -ls in或者./hadoop dfs -ls ./i ...
- day03-hdfs的客户端操作\hdfs的java客户端编程
5.hdfs的客户端操作 客户端的理解 hdfs的客户端有多种形式: 1.网页形式 2.命令行形式 3.客户端在哪里运行,没有约束,只要运行客户端的机器能够跟hdfs集群联网 文件的切块大小和存储的副 ...
随机推荐
- 将Docker容器转移至另一服务器
1 把当前的容器提交为一个镜像: docker commit 容器名 镜像名 2 将镜像存为tar文件 docker save 镜像名 >备份文件.tar 3将 备份文件.tar 复制到目的主机 ...
- hisi mmz模块驱动讲解
一.概述 如图所示,在海思平台上将内存分为两个部分:os内存和mmz内存.os内存指:由linux操作系统管理的内存:mmz内存:由mmz驱动模块进行管理供媒体业务单独使用的内存,在驱动加载时可以指定 ...
- CodeForces - 1228C(质因数分解+贡献法)
题意 https://vjudge.net/problem/CodeForces-1228C 首先先介绍一些涉及到的定义: 定义prime(x)表示x的质因子集合.举例来说,prime(140)={2 ...
- appium----Monkey测试
做过app测试的应该都知道Monkey测试,今天简单的介绍下Monkey如何测试 什么是Monkey monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等, ...
- zz阿里妈妈深度树检索技术(TDM)及应用框架的探索实践
分享嘉宾:何杰 阿里妈妈 高级算法专家 编辑整理:孙锴 内容来源:DataFun AI Talk 出品社区:DataFun 注:欢迎转载,转载请注明出处 导读:阿里妈妈是阿里巴巴集团旗下数字营销的大中 ...
- 剑指Offer-17.树的子结构(C++/Java)
题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 分析: 注意这道题是判断B是不是A的子结构,而不是子树,这一点要注意下,且空树不是任意一个树的子结构 ...
- 20191031 Codeforces Round #539 (Div. 1) - Virtual Participation
这场怎么全是数据结构题...
- react细节
1.在函数式组件中使用 类型和默认值 function App({ name }) { return ( <div> <h1>{name}</h1> </di ...
- 【转】UML各种图总结
UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言.下面将对UML的九种图+包图的基本概念进行介绍以及各 ...
- 数据仓库003 - 复习Linux shell命令 - 用户用户组 sudo 权限 du-sh find
一.用户用户组 [root@localhost ~]# ll /usr/sbin/user* -rwxr-x--- root root -- /usr/sbin/useradd -rwxr-x--- ...