[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集群联网 文件的切块大小和存储的副 ...
随机推荐
- Angular 学习笔记(四)
作用域和控制器的交互情况: 1.控制器通过作用域对模板暴露一些方法供其调用 2.控制器中定义的一些方法可改变注册在作用域下的数据模型 3.控制器在某些场合可能需设置监听器来监听作用域中的数据模型:这些 ...
- Mysql Join-连接查询(中)
Mysql Join-连接查询(中) 认识 就我平时的数据接触来看, 连接查询也没有很复杂,不够是非常需要耐心和逻辑的, 一点点将数据查出来, 拼接等. 没有什么技巧, 多练习就会了. 无非就是表之间 ...
- mysql判断是否包含某个字符的方法和修改表中指定字段
用locate 是最快的,like 最慢.position一般实战例子:select * from historydatawhere locate('0',opennum) and locate('1 ...
- pymongo 笔记(转)
1. 安装MongoDB并启动服务,安装PyMongo2. 连接MongoDB,并指定连接数据库.集合 import pymongo client = pymongo.MongoClient(host ...
- 鲜贝7.3--mysql 下载小问题
安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable 问题原因大体是mysql自动安装的Vis ...
- lincense更新失败
用户的证书到期,页面无法访问, 1 #/dashboard/systemindex在这里面上传证书文件,一分钟后会恢复正常 2 在后台直接配置license字段,将license文件的内容直接拷贝过去 ...
- github上计算String相似度好的项目
项目中包含了杰卡德NGram.cosin夹角.最长公共子序列.边际距离等常用的相似度算法. https://github.com/tdebatty/java-string-similarity
- 对mglearn库的理解(转)
https://blog.csdn.net/az9996/article/details/86490496
- tsar使用说明
常用命令 tsar --nginx --live -i 1 查询1秒的状态每秒采样一次 系统模块 cpu 字段含义 user: 表示CPU执行用户进程的时间,通常期望用户空间CPU越高越好. ...
- win10 mysql5.7.28 配置安装
如果有服务,使用下面命令删除,管理员身份打开cmd : sc delete mysql 1.下载 https://dev.mysql.com/downloads/mysql/5.7.html 没有的O ...