关键字:MapReduce、Hive、子目录、递归、输入、Input、mapreduce.input.fileinputformat.input.dir.recursive、hive.mapred.supports.subdirectories
一般情况下,传递给MapReduce和Hive的input文件夹中不能包含子目录,否则就会报错。但后来增加了递归遍历Input目录的功能,这个貌似是从0.23开始的,具体不清楚,反正在0.20中是不支持的。
我使用的Hadoop版本为:hadoop-2.3.0-cdh5.0.0
Hive版本为:apache-hive-0.13.1-bin
具体使用示例如下:
数据准备
cat 1.txt
1
1
1
cat 2.txt
2
2
hadoop fs -mkdir /tmp/lxw1234/
hadoop fs -mkdir /tmp/lxw1234/subdir/
hadoop fs -put 1.txt /tmp/lxw1234/
hadoop fs -put 2.txt /tmp/lxw1234/subdir/
hadoop fs -ls -R /tmp/lxw1234/
-rw-r--r-- 2 lxw1234 supergroup 6 2015-07-08 13:56 /tmp/lxw1234/1.txt
drwxr-xr-x - lxw1234 supergroup 0 2015-07-08 13:56 /tmp/lxw1234/subdir
-rw-r--r-- 2 lxw1234 supergroup 4 2015-07-08 13:56 /tmp/lxw1234/s