`
退役的龙弟弟
  • 浏览: 446359 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HDFS中PathFilter类对路径进行过滤

 
阅读更多

1、定义类实现PathFilter接口

package com.ru.hadoop.wordcount;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;

/**
 * 文件路径过滤
 * @author nange
 *
 */
public class MyFilePathFileter implements PathFilter{
	//需要读取文件名必须包含fileName字符串
	private String fileName;
	
	public MyFilePathFileter(String fileName){
		this.fileName = fileName;
	}

	/**
	 * @param path :文件路径 如:hdfs://localhost:9000/hdfs/test/wordcount/in/word.txt
	 */
	@Override
	public boolean accept(Path path) {
		boolean res = false;
		if(path.toString().indexOf(fileName) != -1){
			res = true;
		}
		System.out.println("path = " + path + "过滤结果:" + res);
		return res;
	}

}

 2、使用FileSystema提供globStatus()方法对文件路径进行过滤

/**
	 * 对文件路径进行过滤
	 * FileSystema提供globStatus()方法对文件路径进行过滤,这里的路径必须是hdfs路径
	 * 
	 * @param in : 使用通配符 如:hdfs://localhost:9000/hdfs/test/wordcount/in/*
	 * @throws IOException 
	 */
	public String filePaths(String in) throws IOException{
		StringBuilder sb = new StringBuilder();
		//globStatus()方法返回与路径想匹配的所有文件的FileStatus对象数组,并按路径排序。
		FileStatus[] fss = fs.globStatus(new Path(in), new MyFilePathFileter("in/word"));
		Path[] paths = FileUtil.stat2Paths(fss);
		if(paths != null){
			for(Path path : paths){
				sb.append(path.toString() + ",");
			}
		}
		int index = sb.toString().lastIndexOf(",");
 		if(index != -1){
 			System.out.println("过滤后的文件路径:" + sb.toString().substring(0, index));
 			return sb.toString().substring(0, index);
		}
		
		return null;
	}

 3、作业多路径输入

fileInPaths:字符串使用","分割.如:hdfs://localhost:9000/hdfs/test/wordcount/in/word.txt,hdfs://localhost:9000/hdfs/test/wordcount/in/word2.txt

FileInputFormat.addInputPaths(job, fileInPaths);//多输入路径

 

分享到:
评论

相关推荐

    sqoop导入数据到hdfs路径

    sqoop导入数据到hdfs,所有相关的操作命令均在更改相关地址就行。

    spark-submit cluster模式时driver-class-path支持hdfs路径

    spark官方版本的driver-class-path不支持hdfs路径,只支持本地路径。本资源解决了这个问题,driver-class-path在cluster模式时可以支持hdfs路径,解决了cluster模式driver有大量jar依赖的问题。

    实验2常用的HDFS操作.doc

    (6)提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录 (7)提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在,...

    HDFS Comics HDFS 漫画

    HDFS是Hadoop分布式计算的存储基础。HDFS具有高容错性,可以部署在通用硬件设备上,适合数据密集型应用,...HDFS支持传统的层次文件组织结构,同现 有的一些文件系 统类似,如可以对文件进行创建、删除、重命名等操作。

    Hadoop原理与技术hdfs命令行基本操作

    (6)移动hdfs文件:hdfs dfs -mv /hdfs路径 /hdfs路径 (7)复制hdfs文件:hdfs dfs -cp /hdfs路径 /hdfs路径 (8)删除hdfs文件:hdfs dfs -rm /文件名 (9)删除hdfs文件夹:hdfs dfs -rm -r /文件夹名

    hdfs-site.xml配置文件详解

    hdfs-site.xml配置文件详解,有需要的可以下载哈哈哈哈哈

    7、NIFI综合应用场景-将mysql查询出的json数据转换成txt后存储至HDFS中

    7、NIFI综合应用场景-将mysql查询出的json数据转换成txt后存储至HDFS中 网址:https://blog.csdn.net/chenwewi520feng/article/details/130620392 本文是在6、NIFI综合应用场景-离线同步Mysql数据到HDFS中基础上完成...

    论文研究-一种面向HDFS中海量小文件的存取优化方法.pdf

    从HDFS中读取数据时,根据文件之间的相关性,对接下来用户最有可能访问的文件进行预取,减少了客户端对NameNode节点的访问次数,提高了文件命中率和处理速度。实验结果证明,该方法有效提升了Hadoop对小文件的存取...

    hdfs官方设计文档(中文)

    HDFS对应用程序的数据提供高吞吐量,而且适用于那些大数据集应用程序。HDFS开放了一些POSIX的必须接口,容许流式访问文件系统的数据。HDFS最初是为了Apache 的Nutch网络搜索引擎项目的下层构件而设计的。是Hadoop...

    HDFS文件的查看

    hdfs文件的查看 hdfs fs -cat /文件名

    实验二:熟悉常用的HDFS操作

    (1)理解 HDFS在Hadoop体系结构中的角色。(2)熟练使用HDFS操作常用的 Shell命令。(3)熟悉HDFS操作常用的Java API。 A.2.2 实验平台 (1)操作系统:Linux(建议Ubuntu 16.04)。(2) Hadoop版本:2.7.1。 (3)JDK版本:1.7...

    HDFS管理工具HDFS Explorer下载地址、使用方法.docx

    windows平台下的HDFS文件浏览器,就像windows管理器一样管理你的hdfs文件系统。现在官网已经停止更新这款软件。...在hdfs-site.xmle文件中添加如下内容: <name>dfs.webhdfs.enabled <value>true </property>

    web中进行HDFS文件系统操作的demo

    很久之前找到的一个资源,很好用。 web中进行HDFS文件系统操作的demo,由jsp编写,希望对大家有帮助,好好学习,天天向上

    hadoop hdfs配置文件详解

    hadoop的 hdfs配置文件 对文件的每项property进行中文描述 希望的家支持 过几天还会献上其他

    hdfs源码.zip

    第1章 HDFS 1 1.1 HDFS概述 1 1.1.1 HDFS体系结构 1 1.1.2 HDFS基本概念 2 1.2 HDFS通信协议 4 1.2.1 Hadoop RPC接口 4 1.2.2 流式接口 20 1.3 HDFS主要流程 22 1.3.1 HDFS客户端读流程 22 1.3.2 ...

    HDFS文件系统基本文件命令、编程读写HDFS

    本文档时Hadoop云计算平台下运用Hadoop API对HDFS进行相关的操作,详细的记录了程序在eclipse中的应用,代码内容和运行结果,是学习Hadoop非常有用的资料。

    传输到hdfs数据,进行压缩

    对hdfs进行压缩配置,将要上传到hdfs中的数据实现压缩,需要进行以上配置,此资源为编译好的,只要在安装好hadoop的基础上按照操作步骤一步一步进行即可实现

    HDFS集群搭建

    HDFS是Hadoop分布式计算的存储基础。HDFS具有高容错性,可以部署在通用硬件设备上,适合数据密集型应用,...HDFS支持传统的层次文件组织结构,同现 有的一些文件系 统类似,如可以对文件进行创建、删除、重命名等操作。

    java操作Hbase之从Hbase中读取数据写入hdfs中源码

    java操作Hbase之从Hbase中读取数据写入hdfs中源码,附带全部所需jar包,欢迎下载学习。

    doris 0.15版本 中的 apache_hdfs_broker 插件

    已对doris 0.15版本中的apache_hdfs_broker组件进行了编译,可以直接使用此包进行 分发,修改配置文件,启动(之前需要对doris进行安装启动) *** 对应的doris0.15安装包链接如下:...

Global site tag (gtag.js) - Google Analytics