`

Hadoop_Map中获取当前spilt文件名

 
阅读更多
 

Hadoop_Map中获取当前spilt文件名

分类: hadoop mapreduce 3223人阅读 评论(0) 收藏 举报

有时候需要在Map类中的map函数中获取当前split所读取的文件名。

在旧版mapred下面实现方法如下:

// 获得输入文件的路径名
String path=((FileSplit)reporter.getInputSplit()).getPath().toString();

//使用Reporter reporter对象来获取,在新版mapreduce中,

Reporter reporter被封装在类MapContext中(StatusReporter reporter),

在map函数中就是Context context,实现方法应该类似,有兴趣的朋友可以试试。

 

-----------分割线----------->

import org.apache.hadoop.mapreduce.InputSplit; 
import org.apache.hadoop.mapreduce.lib.input.FileSplit;

InputSplit inputSplit = context.getInputSplit();
String fileName = ((FileSplit) inputSplit).getPath().toString();


刚刚搜索了下,新版中实现如下(转载,未测试,方法应该正确)

以下转载:

 

在mapper中获取当前正在处理的HDFS文件名/HDFS目录名

有时候,Hadoop是按行来对数据进行处理的,由于对每一行数据,map()函数会被调用一次,我们有时可以根据文件名/目录名来获取一些信息,从而把它们输出,例如,目录名中包含了日期,则我们可以取出来并输出到Reducer。在map()函数中,我们可以这样取文件名:

1
2
InputSplit inputSplit = context.getInputSplit();
String fileName = ((FileSplit) inputSplit).getName();

假设当前正在处理的HDFS文件路径为:/user/hadoop/abc/myFile.txt,则上面的 fileName 取到的是“myFile.txt”这样的字符串。但如果要获取其目录名“abc”,则可以这样做:

1
2
InputSplit inputSplit = context.getInputSplit();
String dirName = ((FileSplit) inputSplit).getPath().getParent().getName();
 
分享到:
评论

相关推荐

    pc机连接集群的HADOOP_HOME

    在Windows或Linux系统中,你需要将`HADOOP_HOME`添加到系统的PATH环境变量中,这样就可以在命令行中直接运行Hadoop相关的命令,如`hadoop fs -ls`来查看HDFS中的文件。 描述中提到的“把它放到本地”,这里的“它”...

    hadoop_join.jar.zip_hadoop_hadoop query_reduce

    本文将深入探讨如何使用Hadoop和MapReduce进行高效的Join查询,并解析如何通过`hadoop_join.jar`这个工具来实现这一过程。 Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的核心组件包括HDFS(Hadoop ...

    Hadoop_进行分布式并行编程.doc

    Hadoop_进行分布式并行编程.doc Hadoop_进行分布式并行编程.doc

    hadoop-streaming-2.8.0_jar_2.8.0_hadoop_streaming_

    标题 "hadoop-streaming-2.8.0_jar_2.8.0_hadoop_streaming_" 暗示我们正在讨论的是 Hadoop Streaming 的一个版本,具体是2.8.0。Hadoop Streaming 是一个 Hadoop 组件,允许用户使用可执行的脚本(如 Python 或 ...

    hadoop_dll_winutil_2.7

    标题中的"hadoop_dll_winutil_2.7"指的是针对Hadoop 2.7版本的一个特定Windows平台的库组件,它包含了使Hadoop能够在Windows操作系统上正常运行所必需的动态链接库(DLL)文件。这些DLL文件是Hadoop与Windows操作...

    hdfs-webdav.rar_hadoop_hadoop webdav_hadoop 系统_hadoop2.0 d_hdfs

    2. hadoop_webdav:表明讨论的是Hadoop与WebDAV的结合使用。 3. hadoop_系统:暗示可能涉及Hadoop集群的管理和配置。 4. hadoop2.0_d:指的是Hadoop的2.0版本,这个版本引入了许多重要的改进和特性。 5. hdfs:...

    hadoop_spark_数据算法

    hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法

    hadoop_class-master.zip_Master Class_hadoop_社交

    【标题】"hadoop_class-master.zip_Master Class_hadoop_社交" 涉及到的核心知识点是Hadoop在处理社交网络数据时的应用,特别是在社交网络分析中的三角形统计和倒排索引的实现。 Hadoop是一个开源的分布式计算框架...

    hadoop_dll_winutil_2.7.1

    总之,`hadoop_dll_winutil_2.7.1` 提供了一套工具,使得 Windows 用户能够在本地环境中模拟和开发 Hadoop 应用程序,这涉及到了一系列与安装、配置、调试和优化相关的重要知识点。对于那些在非 Linux 环境下工作的...

    windows连接Hadoop需要的文件winutils和hadoop_dll

    这里提到的"windows连接Hadoop需要的文件winutils和hadoop_dll"正是为了解决这个问题。这两个文件是针对Windows用户设计的,以便他们在本地开发环境中能够顺利地与运行在Linux服务器上的Hadoop集群进行通信。 首先...

    hdfs.rar_hadoop_hadoop ubuntu_hdfs_分布式系统_基于hadoop

    标题中的"hdfs.rar_hadoop_hadoop ubuntu_hdfs_分布式系统_基于hadoop"表明这个压缩包包含了与在Ubuntu操作系统上安装和使用Hadoop和HDFS相关的资料。Ubuntu是一个广泛使用的Linux发行版,适合部署大型分布式系统如...

    hadoop2.7_winutils_exe和hadoop_dll

    下载完成后,需要将它们放置在正确的目录结构下,比如在 `%HADOOP_HOME%\bin` 目录下,并且确保添加`HADOOP_HOME`到系统环境变量中,这样命令提示符才能找到并执行这些文件。 为了使Hadoop在Windows上正常工作,还...

    hadoop_dll2.6.0_64bit_windows_dll_hadoop_

    标题"hadop_dll2.6.0_64bit_windows_dll_hadoop_"表明我们正在讨论的是针对Windows操作系统的一个64位Hadoop版本,特别地,这个版本包含了用于Windows环境的动态链接库(DLL)文件,以便在Windows上支持Hadoop的执行...

    hadoop-test-report.zip_hadoop_hadoop word_压力测试报告

    标题“hadoop-test-report.zip_hadoop_hadoop word_压力测试报告”指出这是一个关于Hadoop的测试报告,特别关注了Hadoop在处理Word数据时的压力测试情况。"hadoop_test_report.doc"是压缩包内的文档,很可能是详细的...

    hadoop_windows_tools.rar

    标题中的"hadoop_windows_tools.rar"暗示了这是一组专为Windows用户定制的Hadoop工具,其中可能包括了使Hadoop在Windows上运行所必需的一些组件和配置。描述提到该插件适用于Hadoop2.7.6版本,这意味着这些工具与...

    hadoop2.7.x_winutils_exe&&hadoop;_dll

    2. **PATH变量**:将%HADOOP_HOME%\bin添加到系统PATH环境变量中,这样在任何地方都可以通过命令行直接执行winutils.exe。 3. **权限设置**:winutils.exe用于处理HDFS权限,因此可能需要管理员权限才能执行某些...

    大数据技术Hadoop3.x 2021年

    01_Hadoop_开篇_课程整体介绍.mp4 03_Hadoop_概论_大数据的特点.mp4 04_Hadoop_概论_大数据的应用场景.mp4 06_Hadoop_概论_未来工作内容.mp4 07_Hadoop_入门_课程介绍.mp4 11_Hadoop_入门_Hadoop优势.mp4 13_Hadoop_...

    在Windows上安装Hadoop教程.zip_YJVH_hadoop_hadoop book

    同时,将%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin添加到PATH变量中,以便于命令行调用Hadoop命令。 4. **配置Hadoop**:打开Hadoop的配置文件,主要涉及两个文件:`core-site.xml` 和 `hdfs-site.xml`。在`core-site...

    windows本地化Hadoop(hadoop_dll2.6.0_64bit)

    当我们想要在Windows系统中模拟Hadoop集群,可以使用该插件 1.在没有中文路径下进行解压 ... 本地路径/hadoop_dll2.6.0_64bit/bin添加到环境变量,HADOOP_HOME=本地路径/hadoop_dll2.6.0_64bit/bin

    Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf

    Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf

Global site tag (gtag.js) - Google Analytics