2016-05-19 15 views
1

Ich habe eine Stelle in Hadoop, die wie unterschiedliche Verzeichnisse in es mit dir1 dir2 usw. Ich brauche diese verschiedenen Verzeichnissen als verschiedene Zip-Dateien zippen.Zip verschiedenen Verzeichnissen in hadoop mit Bash-Skript

Ich habe das folgende Skript verwendet, aber das funktioniert nicht.

for d in ${directory_to_move_files}/*/ ; 

do 
    echo "$d" ; 
//zip the folders printed in echo 

done 

Kann jemand den richtigen Weg zeigen, dies zu tun.

+0

es ist nicht verwandt mit hadoop (könnten Sie Hadoop-Tag löschen). Sein einfaches Shell-Skript. pls. siehe meine Antwort :) –

+0

Ich brauche die Schale in Hadoop zu verwenden, ist das, warum hinzugefügt. – dileepVikram

+0

ok. Aber kopieren Sie in diesem Fall den Hadoop-Ordner mit hadoop fs-coptolocal? –

Antwort

1

einfache Lösung ist es, lokale Linux-Ordner mit hadoop fs -copyToLocal zu übergeordnetem Verzeichnis, wo Sie bei FileSystem Befehl reference die unten durch Speicher in Shell-Skript Look ausführen wollen und tun.

#!/bin/bash 
for eachindex in */; do zip -r "${eachindex%/}.zip" "$eachindex"; done 

Wie ich verstand, dass Ihre Frage tiefen Einblick hat (nicht nur Skripte Unix-Bash-Befehl und Shell), und Sie wollen zip zu tun, mit in Hadoop-Umgebung nur und nicht von ihm zu lokalem Unix/Linux-Dateisystem kopieren .

Ich habe Forschung auf diesem und ich nur so gefunden FUSE aka (Filesystem in Userspace) interface into HDFS auch MountableHDFS

Ich weiß nicht, wie weit seine machbar für Sie sehen, verwendet. In unserer Implementierung habe ich die hdfs-Datei in das lokale Dateisystem kopiert und Shell-Skripte ausgeführt.

+0

Ich habe eine CD an den Speicherort der Verzeichnisse zu gezippt, als sonst der Befehl zip entpacken die unerwünschten Verzeichnisse – dileepVikram

+0

wenn Sie mit der Antwort okay sind kannst du bitte auch abstimmen? –

0
find ${directory_to_move_files}/* -maxdepth 1 -type d -exec zip -r {}.zip {} \; 
Verwandte Themen