一、HDFS集群API所需要jar包的maven配置信息

        <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.8.4</version>
</dependency>

二、从HDFS下载数据文件/上传文件到HDFS文件系统

  思路:1.获取配置信息

     2.设置配置信息(块大小、副本数)

     3.构造客户端

     4.下载数据文件/上传数据文件

     5.关闭资源

  (1)下载文件

/**
* @author: PrincessHug
* @date: 2019/3/18, 16:10
* @Blog: https://www.cnblogs.com/HelloBigTable/
*/
public class HdfsClientDemo02 {
public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
//配置信息对象
Configuration conf = new Configuration();
//设置具体配置信息
conf.set("dfs.replication","2");
//构造客户端
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.126.128:9000/"), conf, "root"); //下载数据到本地
fs.copyToLocalFile(new Path("/words1.txt"),new Path("f://words1.txt"));
//关闭资源
fs.close();
System.out.println("下载完成");
}
}

  (2)上传文件

/**
* @author: PrincessHug
* @date: 2019/3/18, 11:53
* @Blog: https://www.cnblogs.com/HelloBigTable/
*/
public class HdfsClientDemo01 {
public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
//配置信息
Configuration conf = new Configuration();
//配置块大小和副本数
conf.set("dfs.blocksize","64m");
conf.set("dfs.replication","2");
//构造客户端
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.126.128:9000/"), conf, "root");
//上传文件到hdfs客户端
fs.copyFromLocalFile(new Path("/root/love.tsv"),new Path("/love1.tsv"));
//关闭资源
fs.close();
System.out.println("上传成功!");
}
}

三、对HDFS系统进行操作的API

/**
* @author: PrincessHug
* @date: 2019/3/18, 16:16
* @Blog: https://www.cnblogs.com/HelloBigTable/
*/
public class HdfsClientDemo { private static FileSystem fs = null; static {
Configuration conf = new Configuration();
conf.set("dfs.blocksize","64m");
conf.set("dfs.replication","3");
try {
fs = FileSystem.get(new URI("hdfs://192.168.126.128:9000/"),conf,"root");
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
}
} /**
* 创建文件夹方法
* @throws IOException
*/
public void mkDir(String path) throws IOException {
fs.mkdirs(new Path(path));
fs.close();
} /**
* 重命名或移动文件
* @param path1
* @param path2
* @throws IOException
*/
public void hdfsRename(String path1,String path2) throws IOException {
fs.rename(new Path(path1),new Path(path2));
fs.close();
} /**
* 删除文件或文件夹
* @param path 路径
* @throws IOException
*/
public void delete(String path) throws IOException {
fs.delete(new Path(path),true);
fs.close();
} /**
* 列出hdfs指定的目录信息
* @param path
* @throws IOException
*/
public void list(String path) throws IOException {
RemoteIterator<LocatedFileStatus> iterator = fs.listFiles(new Path(path), true);
while (iterator.hasNext()){
//拿数据
LocatedFileStatus status = iterator.next();
System.out.println("文件的路径为:" + status.getPath());
System.out.println("文件的块大小为:" + status.getBlockSize());
System.out.println("文件的块信息为:" + Arrays.toString(status.getBlockLocations()));
System.out.println("文件的长度为:" + status.getLen());
System.out.println("文件的副本数为:" + status.getReplication());
System.out.println("=====================================================");
}
fs.close();
} /**
* 判断时文件还是文件夹
* @param parh
* @throws IOException
*/
public void judgeFileOrDir(String parh) throws IOException {
//展示状态信息
FileStatus[] fileStatuses = fs.listStatus(new Path(parh));
//遍历所有文件
for (FileStatus fs:fileStatuses){
if (fs.isFile()){
System.out.println("文件-----f------" + fs.getPath().getName());
}else {
System.out.println("文件-----d------" + fs.getPath().getName());
}
}
}
} public class HdfsDriver {
public static void main(String[] args) {
HdfsClientDemo hcd = new HdfsClientDemo();
try {
//hcd.mkDir("/wyh");
hcd.judgeFileOrDir("/");
hcd.list("/");
} catch (IOException e) {
e.printStackTrace();
}
}
}

  

四、

HDFS常用API(1)的更多相关文章

  1. HDFS常用API操作 和 HDFS的I/O流操作

    前置操作 创建maven工程,修改pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  2. hdfs常用api(java)

    1.下载文件到本地 public class HdfsUrlTest { static{ //注册url 让java程序识别hdfs的url URL.setURLStreamHandlerFactor ...

  3. HDFS连接JAVA,HDFS常用API

    先在pom.xml中导入依赖包 <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/ha ...

  4. HDFS常用API(2)

    一.读取HDFS文件数据.将本地文件写入HDFS中文件.使用IOUtils读写数据 ** * @author: PrincessHug * @date: 2019/3/18, 17:24 * @Blo ...

  5. 大数据(5) - HDFS中的常用API操作

    一.安装java 二.IntelliJ IDEA(2018)安装和破解与初期配置 参考链接 1.进入官网下载IntelliJ IDEA https://www.jetbrains.com/idea/d ...

  6. HDFS Java API 常用操作

    package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; impo ...

  7. [b0014] HDFS 常用JAVA 操作实战

    目的: 学习用java进行的常用hdfs操作 参考: [b0002] Hadoop HDFS cmd常用命令练手 环境: hadoop2.6.4 win7 下的eclipse环境调试已经配置好,参考前 ...

  8. html5 canvas常用api总结(一)

    1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...

  9. compass General 常用api学习[Sass和compass学习笔记]

    compass 中一些常用api 包括一些浏览器hack @import "compass/utilities/general" Clearfix Clearfix 是用来清除浮动 ...

随机推荐

  1. html<meta>标签

    1. 定义说明 <meta>提供与页面有关的元数据,元数据是对数据的描述 <meta>总是位于<head></head>中 <meta>定义 ...

  2. R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列

    就是想保存下来,没有其他用意 原博文:http://blog.csdn.net/qq_26898461/article/details/53467968 3. 空间定位与检测     参考信息< ...

  3. 关于deepin linux15.6-15.9.1系统播放视频卡顿解决办法

    关于deepin linux15.6-15.9.1系统播放视频卡顿解决办法 chrome浏览器 关闭chrome硬件加速模式 设置>高级>使用硬件加速模式 注释:由于视频卡顿是因显卡驱动问 ...

  4. MobileNet V2

    https://zhuanlan.zhihu.com/p/33075914 http://blog.csdn.net/u011995719/article/details/79135818 https ...

  5. J2SE基础小结

    1. 九种基本数据类型的大小,以及他们的封装类. 类型 基本类型 大小(字节) 默认值 封装类 整数型 byte 1 (byte)0 Byte short 2 (short)0 Short int 4 ...

  6. 1010:Tempter of the Bone

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 Problem Description The doggie found a bone in a ...

  7. 【ES】学习11-多桶排序

    聚合结果的排序 默认:桶会根据 doc_count 降序排列. 内置排序: 设置按doc_count升序排序:注意order,_count GET /cars/transactions/_search ...

  8. bzoj 4011

    看了好多篇题解才看懂的题,我实在太菜了... 首先根据一个我不知道的算法,可以证明在没有加入新的边的时候,原图的所有生成树的方案数就是所有点(除1以外)的度之积 那么在新加入这条边之后,我们仍然可以这 ...

  9. vue指令问题

    挂载点:最外层标签就是vue实例的挂载点,即id或者类对应的 dom节点 模板:指挂载点内部的内容,在实例里使用template标签来构 建 h1标签放在body里面不使用 “template”是一样 ...

  10. ActiveSync 学习记录

    协议就是一种规范.它是高效团队协作的依据.有的人可能不爱看团队规范之类的文档,一方面是个人意识问题,另外也和文档的组织.协作的效果相关. 写好文档: 看好文档. 1. 处理XML转码 抓包后,发现邮件 ...