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

需求:

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);

猜你喜欢

转载自snv.iteye.com/blog/1996143