`
退役的龙弟弟
  • 浏览: 453625 次
  • 性别: 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);//多输入路径

 

分享到:
评论

相关推荐

    实验2常用的HDFS操作.doc

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

    hdfs-site.xml配置文件详解

    下面对hdfs-site.xml中的部分关键配置项进行详细解析。 1. dfs.namenode.logging.level 该配置项定义了HDFS中NameNode日志的记录级别。NameNode是HDFS的核心组件,负责管理文件系统的命名空间和客户端对文件的访问...

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

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

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

    3. **数据处理**:可能需要对转换后的文本数据进行进一步的处理,例如过滤、分割、合并等,这可以通过添加其他处理器如`SplitText`、`ReplaceText`等来实现。 4. **数据存储**:最后,使用`PutHDFS`处理器将转换后...

    HDFS基本命令.docx

    HDFS(Hadoop Distributed File System)是一种分布式文件系统,提供了对大规模数据的存储和管理能力。在HDFS中,基本命令是最基础也是最常用的命令,掌握这些命令是使用HDFS的基础。本节我们将详细介绍HDFS中的基本...

    HDFS Comics HDFS 漫画

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

    hdfs-java-api

    * org.apache.hadoop.fs.Path:该类表示 HDFS 中的一个文件路径。 * org.apache.hadoop.conf.Configuration:该类提供了 HDFS 的配置信息,包括文件系统的块大小、副本因子等。 HDFS Java API 的使用 HDFS Java ...

    hadoop之hdfs中所依赖jar

    标题"hadop之hdfs中所依赖jar"指出的关键点是,为了成功地进行HDFS操作,必须确保正确地引入了必要的JAR包。这里提到的"Hadoop之上传文件,文件夹到hdfs,从hdfs中下载文件,文件夹所依赖的jar包",具体来说,通常包括...

    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 /文件夹名

    利用JAVA代码将本地文件传入HDFS中

    1. **配置Hadoop环境**:确保你的Java项目已经配置了Hadoop的类路径,包括`hadoop-core.jar`或者更现代版本的`hadoop-client.jar`。 2. **创建配置对象**:使用`Configuration`类初始化一个配置对象,设置HDFS的...

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

    HDFS 文件系统基本文件命令、编程读写 HDFS HDFS(Hadoop Distributed File System)是一种分布式文件系统,用于存储和管理大规模数据。它是 Hadoop 云计算平台的核心组件之一,提供了高效、可靠、可扩展的数据存储...

    hdfs源码分析整理

    本文将对HDFS源码进行详细的分析和整理,涵盖了HDFS的目录结构、对象序列化、压缩、RPC机制、DataNode工作状态等多个方面。 目录结构分析 HDFS的目录结构是HDFS架构的基础,理解HDFS的目录结构是ucceeding HDFS源码...

    大数据 实验2 HDFS基础操作实验.pdf

    HDFS使用Master和Slave结构对集群进行管理。一般一个HDFS集群只有一个Namenode和一定数目的Datanode组成。 在HDFS中,Namenode是HDFS集群主节点,负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的...

    数据科学导论实验报告 实验2:熟悉常用的HDFS操作

    在本实验中,我们主要关注的是对Hadoop分布式文件系统(HDFS)的熟悉和操作。HDFS是Hadoop的核心组件之一,它提供了一个高容错、可扩展的存储层,用于处理大规模的数据集。实验内容包括编程实现HDFS操作以及使用...

    HDFS实例基本操作

    例如,`hadoop fs -put localfile hdfs://namenode:port/remote/path`将把`localfile`复制到HDFS的指定路径。 2. 使用HDFS API:对于Java应用程序,可以使用Hadoop的FSDataOutputStream类,通过创建一个FileSystem...

    java大数据作业_2HDFS

    以上内容涵盖了HDFS的健康检查、数据平衡、文件管理、心跳机制、路径过滤以及Har文件的读取,这些都是Hadoop集群管理和开发中的关键知识点。理解和掌握这些内容对于进行高效的大数据处理至关重要。

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

    实验二:“熟悉常用的HDFS操作”旨在帮助学习者深入理解Hadoop分布式文件系统(HDFS)在大数据处理中的核心地位,以及如何通过Shell命令和Java API进行高效操作。HDFS在Hadoop架构中扮演着存储大数据的核心角色,为...

    sqoop导入数据到hdfs路径

    - 设置好JDBC驱动,并将其添加到Sqoop的类路径中。 2. **数据源准备**: - 在MySQL数据库中创建所需的表`CARD_RECHARGE`,并填充必要的数据。 - 检查数据库连接字符串是否正确,确保能够正常连接到MySQL数据库。...

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

    在分布式计算领域,Hadoop HDFS(Hadoop Distributed File System)是广泛使用的文件系统,它为大...在深入研究和实践这个demo的过程中,你将更好地理解Hadoop HDFS的工作原理以及如何在Web环境中对其进行有效利用。

Global site tag (gtag.js) - Google Analytics