我知道distcp不能使用通配符。但是,我将需要一个预定的distcp改变目录(i、 e.只复制“星期五”目录(星期一等)中的数据,也可以从指定目录下的所有项目复制数据。有什么设计模式可以用来编写这种东西的脚本吗?简言之,我希望能够做到:
hadoop distcp /foo/*/bar/$year/$month/$day hdfs://namespace-foo/replication-dir/
vltsax251#
我最终使用以下函数来访问我需要的目录。
function get_list_of_directories_for_input_dir { local fvar_dirlist=`hadoop fs -ls "$1" | awk '{print $8}'` local fvar_count=`echo "$fvar_dirlist" | wc -l` if [ "$fvar_count" -ge "2" ]; then local fvar_len=$(($fvar_count - 1)) local fvar_dirlist=`echo $fvar_dirlist | tail -n $fvar_len` echo "$fvar_dirlist" else exit 1; fi }
1条答案
按热度按时间vltsax251#
我最终使用以下函数来访问我需要的目录。