`
kavy
  • 浏览: 888539 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java API 读取HDFS目录下的所有文件

 
阅读更多
/**
 * 获取1号店生鲜食品的分类id字符串
 * @param filePath
 * @return
 */
public String getYHDSXCategoryIdStr(String filePath) {
	final String DELIMITER = new String(new byte[]{1});
	final String INNER_DELIMITER = ",";
	
	// 遍历目录下的所有文件
	BufferedReader br = null;
	try {
		FileSystem fs = FileSystem.get(new Configuration());
		FileStatus[] status = fs.listStatus(new Path(filePath));
		for (FileStatus file : status) {
			if (!file.getPath().getName().startsWith("part-")) {
				continue;
			}
			
			FSDataInputStream inputStream = fs.open(file.getPath());
			br = new BufferedReader(new InputStreamReader(inputStream));
			
			String line = null;
			while (null != (line = br.readLine())) {
				String[] strs = line.split(DELIMITER);
				String categoryId = strs[0];
				String categorySearchName = strs[9];
				if (-1 != categorySearchName.indexOf("0-956955")) {
					yhdsxCategoryIdStr += (categoryId + INNER_DELIMITER);
				}
			}// end of while
		}
	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		try {
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	return yhdsxCategoryIdStr;
}

 

HDFS上的目录、文件:

 

-bash-3.2$ hadoop fs -ls /user/hive/warehouse/category
Found 2 items
-rw-r--r--   2 basicdata supergroup          0 2014-08-18 01:05 /user/hive/warehouse/category/_SUCCESS
-rw-r--r--   2 basicdata supergroup    1117233 2014-08-18 01:05 /user/hive/warehouse/category/part-m-00000


文件内容:

 

 

-bash-3.2$ hadoop fs -cat /user/hive/warehouse/category/part-* | more
52880000052880杂粮组合51621010-5135-5162-5288:食品-粮油-杂粮组合011
9726780009726787茶具19650290040-950340-965029-972678:家居-餐具水具-茶具1011
9701550009701557菲士康196046510null0-960464-960465-970155:隐形眼镜(药网)-普通隐形眼镜-菲士康1011
9702350009702356生活服务000180-970235:生活服务011
9702360009702367SIM卡9635241030-957328-963524-970236:手机通讯/数码电器-运营商-SIM卡011
9737840009737842鞋包配饰97377810null0-960665-960768-973775-973778-973784:1号礼品中心-时尚创意礼品-定制品-个性定制-鞋包配饰011
5315T602个人清洁5183190null0-5134-5183-5315:厨卫清洁-清洁剂-个人清洁111
5316T603家用清洁5183190null0-5134-5183-5316:厨卫清洁-清洁剂-家用清洁111
5317UD02蛋制品1516110null0-5135-5161-5317:食品饮料-腌制品1-蛋制品1111
5318UD030肉制品5161180null0-5135-5161-5318:食品饮料-腌制品-肉制品111
分享到:
评论

相关推荐

    大数据技术基础实验报告-调用Java API实现HDFS操作.doc

    这些JAR包包含了Hadoop的Java API,它们允许开发者编写Java应用程序来直接与HDFS进行交互,如读取、写入和管理文件。通过这些API,我们可以实现数据的上传、下载、查找、删除等基本操作,以及更复杂的文件系统操作。...

    利用javaAPI访问HDFS的文件

    获取HDFS目录列表 ```java private static void getDirectoryFromHdfs() throws IOException { FileSystem fs = FileSystem.get(conf); FileStatus[] statuses = fs.listStatus(new Path("hdfs://192.168.0.113:...

    java API 操作HDFS

    javaAPI操作HDFS,测试可用 window环境需要下载hadoop客户端

    java操作Hadoop源码之HDFS Java API操作-创建目录

    接下来,通过`FileSystem`类的静态方法获取HDFS的实例: ```java FileSystem fs = FileSystem.get(conf); ``` 现在,我们可以使用这个`fs`对象来执行HDFS的操作。要创建目录,可以调用`mkdirs()`方法: ```java ...

    hdfs-java-api

    * 分布式文件系统:HDFS Java API 可以用于分布式文件系统,例如 HDFS、Ceph 等。 结论 HDFS Java API 是一个功能强大且灵活的 Java 库,提供了多种方式来操作 HDFS。它的优点包括高性能、高可靠性和高灵活性,...

    02--HDFS Java API操作.docx

    Java API 是 HDFS 的一个编程接口,允许开发者使用 Java 语言来操作 HDFS 中的文件和目录。本文将介绍如何使用 HDFS Java API 实现文件下载和上传操作。 一、HDFS Java API 概述 HDFS Java API 是 Hadoop 中的一...

    elcipse java hadoop操作hdfs的api

    2. **FileSystem对象**:`FileSystem`是HDFS API的入口点,通过它你可以执行所有文件操作。首先需要实例化一个`FileSystem`对象,通常使用`FileSystem.get(conf)`方法,其中`conf`是`Configuration`对象,配置了...

    java操作Hadoop源码之HDFS Java API操作-上传文件

    例如,可以使用`fs.delete()`删除文件,`fs.rename()`重命名文件,`fs.globStatus()`获取匹配模式的所有文件。 7. **集群认证**: 如果HDFS集群启用了安全认证(如Kerberos),还需要配置安全上下文,进行身份验证...

    使用Java API操作HDFS分布式文件系统

    - **列举目录**:使用`FileSystem.listStatus(path)`列出指定目录下的文件和子目录。 - **移动和重命名**:使用`FileSystem.rename(oldPath, newPath)`移动或重命名文件/目录。 7. **文件属性** - **获取文件...

    HDFSJavaAPI.tar.gz_HDFS JAVA API_hdfs

    8. **权限和访问控制**:HDFS支持POSIX样式的权限模型,Java API提供了设置和检查文件和目录权限的函数。 9. **安全性**:在安全模式下,HDFS支持Kerberos认证,Java API提供了进行安全身份验证的机制。 10. **...

    java 从hadoop hdfs读取文件 进行groupby并显示为条形图

    Java API提供了访问HDFS的接口,例如`org.apache.hadoop.fs.FileSystem`类,可以用于读取、写入和管理文件系统中的文件。 2. **Hadoop MapReduce**:MapReduce是Hadoop用于并行处理和分析大数据的编程模型。在GROUP...

    使用Java Api操作HDFS过程详解

    使用Java API 操作 HDFS 过程详解 Java 应用程序接口(API)是 Java 语言提供的一组编程接口,用于访问...使用 Java API 操作 HDFS 需要配置好 Maven 环境,获取 FileSystem 对象,然后使用它来读取和写入 HDFS 文件。

    3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件

    - **文件遍历**:使用`FileStatus[] listStatus(Path f)`获取目录下所有文件的状态,再遍历这些状态信息。 - **查找文件**:利用`LocatedFileStatus[] globStatus(Path pathPattern)`根据通配符查找文件。 - **拷贝...

    java通过api方式操作Hadoop

    该资源是java通过api的方式来操作hadoop,主要有以下操作: 一.文件操作 1.上传本地文件到hadood ...3.读取某个目录下的所有文件 三.hdfs信息 1.查找某个文件在HDFS集群中位置 2.获取HDFS集群上所有名称节点信息

    java对大数据HDFS文件操作

    Java作为广泛使用的编程语言,提供了丰富的API来操作HDFS,使得开发者能够方便地进行文件的读取、写入、复制、移动等操作。本文将详细讲解如何使用Java对HDFS进行文件操作,并介绍两个相关的项目示例。 首先,Java...

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

    HDFS 提供了一个 API,允许开发者使用 Java 语言编写程序来操作 HDFS 文件系统。该 API 包括了 open、read、write、close 等方法,用于读写 HDFS 文件。 使用 HDFS API 可以实现以下操作: 1. 上传本地文件:使用 ...

    Javaapi操作HDFS综合练习.pdf

    除了上述操作,Java API还提供了诸如移动文件、重命名、检查文件是否存在、读取文件内容等更多的功能。例如,`FileSystem.rename()`用于重命名文件,`FileSystem.exists()`检查文件或目录是否存在,`...

    java管理hdfs文件和文件夹项目hadoop2.4

    6. **列举目录内容**:使用`listStatus()`方法列出目录中的所有文件和子目录。例如: ```java FileStatus[] statuses = fs.listStatus(dirPath); for (FileStatus status : statuses) { System.out.println...

    HDFS JavaAPI

    利用java api实现HDFS增删查改文件和文件目录,运行代码首先eclipse集成hadoop环境 maven项目pom.xml导入相关依赖

Global site tag (gtag.js) - Google Analytics