web-dev-qa-db-fra.com

Existe-t-il une commande hdfs pour répertorier les fichiers dans le répertoire HDFS selon l'horodatage

Existe-t-il une commande hdfs pour répertorier les fichiers dans le répertoire HDFS selon l’horodatage, croissant ou décroissant? Par défaut, hdfs dfs -ls La commande donne une liste de fichiers non triés.

Lorsque j’ai cherché des réponses, j’ai trouvé une solution de contournement, c.-à-d. hdfs dfs -ls /tmp | sort -k6,7. Mais y a-t-il un meilleur moyen, incorporé dans hdfs dfs ligne de commande?

21
daemon12

Non, il n'y a pas d'autre option pour trier les fichiers en fonction de la date/heure.
Si vous utilisez la version de hadoop <2.7, vous devrez utiliser le type -k6,7 comme vous le faites:

hdfs dfs -ls /tmp | sort -k6,7

Et pour hadoop 2.7.x commande ls , les options suivantes sont disponibles:

Usage: hadoop fs -ls [-d] [-h] [-R] [-t] [-S] [-r] [-u] <args>

Options:
-d: Directories are listed as plain files.
-h: Format file sizes in a human-readable fashion (eg 64.0m instead of 67108864).
-R: Recursively list subdirectories encountered.
-t: Sort output by modification time (most recent first).
-S: Sort output by file size.
-r: Reverse the sort order.
-u: Use access time rather than modification time for display and sorting.

Ainsi, vous pouvez facilement trier les fichiers:

hdfs dfs -ls -t -R (-r) /tmp 
39
Nishu Tayal