Vérifier si le répertoire dans HDFS existe déjà ou pas
J'éprouve de la structure de répertoire suivante dans HDFS,
/analysis/alertData/logs/YEAR/MONTH/DATE/HOURS
Que la donnée est à venir sur houly base et stockées dans le format année/mois/jour/heure.
J'ai écrit un script shell dans lequel je suis de passage chemin jusqu'à
"/analysis/alertData/logs" ( this will vary depending on what product of data i am handling)
shell script passer par l'année/mois/date/heure dossiers et le retour de la plupart des dernières chemin.
Par exemple:
Directories present in HDFS has following structure:
/analysis/alertData/logs/2014/10/22/01
/analysis/alertData/logs/2013/5/14/04
shell script is given path till : " /analysis/alertData/logs "
it outputs most recent directory : /analysis/alertData/logs/2014/10/22/01
Ma question ici est de savoir comment puis-je valider si HDFS chemin d'accès au répertoire passer script shell est valide ou pas. Disons que je passe un mauvais chemin en tant qu'entrée ou un chemin d'accès qui n'existe pas donc comment gérer que dans un script shell.
Échantillon mauvais chemin d'accès peut être:
wrong path : /analysis/alertData ( correct path : /analysis/alertData/logs/ )
wrong path : /abc/xyz/ ( path does not exit in HDFS )
J'ai essayé d'utiliser Hadoop dfs -test -z/-d/-e n'a pas fonctionné pour moi.
Toute suggestion pour cela.
REMARQUE : ne Pas poster mon code original ici, comme une solution à mon problème ne dépend pas d'elle.
Merci d'avance.
OriginalL'auteur user1188611 | 2014-10-22
Vous devez vous connecter pour publier un commentaire.
Essayer w/o commande test []:
OriginalL'auteur morsik
Depuis
retour 0 si elle existe, puis
OriginalL'auteur silvio.digregorio
Salut j'ai utilisé le script suivant pour tester le HDFS répertoire existe ou pas. J'ai vu dans votre question que vous avez essayé cette commande test et n'a pas travaillé. Pourriez-vous veuillez donner aucune trace sur pourquoi cela ne fonctionne pas..
OriginalL'auteur Ilango
Hadoop fs est obsolète
Utilisation: hdfs dfs -test -[ezd] URI
Options:
L'option-e va vérifier pour voir si le fichier existe, retourne 0 si la valeur est true.
L'option-z va vérifier pour voir si le fichier est de longueur nulle, retourne 0 si la valeur est true.
L'option-d va vérifier pour voir si le chemin est un répertoire, retourne 0 si la valeur est true.
Exemple: hdfs dfs -test -d $yourdir
Veuillez consulter le document suivant pour plus d'infos: https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/FileSystemShell.html
Ce qui concerne
OriginalL'auteur Ngoc Nguyen
En Java, nous pouvons le vérifier à l'aide du système de fichiers de classe.
Système de fichiers
OriginalL'auteur Abhishek K