Hadoop以某目录下的所有目录作为input源方式

本文介绍了如何利用Hadoop在特定目录下生成带有时间命名的日志文件,并将其作为分析的数据源。通过构建Path数组,遍历目录下的所有目录作为输入路径,从而实现高效的数据处理流程。

需求:

hadoop执行mr的时候以时间为名称在某固定目录下生成数据文件,比如日志,那么在对此做分析的时候需要把此目录下的所有目录作为input数据源来操作。

实现:

构建Path[]来作为数据源核心代码:

Path inPath = new Path("/hadoop/bizlog/");
FileStatus[] status = hdfs.listStatus(inPath);
List<Path> list = new ArrayList<Path>();
for (FileStatus fileStatus : status) {
	if (hdfs.getFileStatus(fileStatus.getPath()).isDir()) {
		list.add(fileStatus.getPath());
	}
}
Path[] paths = new Path[list.size()];
list.toArray(paths);
TextInputFormat.setInputPaths(job, paths);

 

启动Hadoop分布式文件系统,进行相关操作,提交程序运行结果截图。 实验环境及准备: 1. 向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件; 将test.txt上传到HDFS根目录,并进行验证,文件是否存在 追加本地append.txt到HDFS的/test.txt: 2. 从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名; 下载hdfs的/test.txt到本地,并进行验证 3. 将HDFS中指定文件的内容输出到终端中; 4. 显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息; 5. 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息; 查看目录下的内容: 6. 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录; 创建目录 7. 提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录; 8. 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾; 9. 删除HDFS中指定的文件; 10. 在HDFS中,将文件从路径移动到目的路径。 给出我相关的命令示例,逻辑严谨,不易报错
03-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值