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