如何从HDFS中获取其名称的最大目录?

时间:2017-04-19 13:30:18

标签: linux hdfs

以下是根据hadoop 2.6.0我的HDFS的目录结构

/user/cloudera/output_files/file_date_2016-12-27/outputfile.txt
/user/cloudera/output_files/file_date_2016-12-28/outputfile.txt
/user/cloudera/output_files/file_date_2016-12-29/outputfile.txt
..

我想从父HDFS目录

获取其名称的最大输出目录
OUTPUT_HDFS_DIR=/user/cloudera/output_files
latest_output_dir= hdfs dfs -ls -d $OUTPUT_HDFS_DIR/* | sort -n | tail -1

echo $latest_output_dir// This line is printing

latest_date_dir=$(basename "$latest_output_dir")
echo $latest_date_dir//This line is not printin. Getting a empty space.

输出上面的shell脚本

[cloudera@client09 scripts]$ bash latest_dir.sh
drwxrwx---   - cloudera cloudera          0 2017-04-19 13:35 /user/cloudera/output_files/file_date_2016-12-29

我希望将$ latest_date_dir打印为 file_date_2016-12-29 ,但它没有显示。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

更改以下行:

latest_output_dir= hdfs dfs -ls -d $OUTPUT_HDFS_DIR/* | sort -n | tail -1

为:

latest_output_dir=`hdfs dfs -ls -d $OUTPUT_HDFS_DIR/* | sort -n | tail -1`

解释:您的命令将被执行,但输出不会分配给变量。我建议的更改将执行缺少的部分(将其分配给变量)。