Video: Ta kontroll over tilganger til mapper og filer i Teams (Avansert) 2025
HDFS er en av de to hovedkomponentene i Hadoop-rammen; den andre er det beregningsmessige paradigmet kjent som MapReduce. Et distribuert filsystem er et filsystem som administrerer lagring på tvers av en nettverksklippe av maskiner.
HDFS lagrer data i blokker , enheter med standardstørrelse 64 MB. Filer du vil lagre i HDFS må brytes inn i blokkstørrelsesbiter som deretter lagres uavhengig av hele klyngen. Du kan bruke kommandoen fsck line for å liste blokkene som utgjør hver fil i HDFS, som følger:
% hadoop fsck / -filer-blokker
Fordi Hadoop er skrevet i Java, administreres alle interaksjoner med HDFS via Java API. Vær imidlertid oppmerksom på at du ikke trenger å være en Java-guru til å jobbe med filer i HDFS. Flere Hadoop-grensesnitt som er bygd på toppen av Java API, er nå i vanlig bruk (og skjul Java), men den enkleste er kommandolinjegrensesnittet; bruk kommandolinjen til å samhandle med HDFS i de oppgitte eksemplene.
Du får tilgang til Hadoop-filsystemskallet ved å kjøre en form for hadoop-kommandoen. Alle hadoop-kommandoer er påkalt av bin / hadoop-skriptet. (For å hente en beskrivelse av alle hadoop-kommandoer, kjør Hadoop-skriptet uten å angi noen argumenter.) Hadoop-kommandoen har syntaksen
hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
config confdir-alternativet overskriver standardkonfigurasjonskatalogen ($ HADOOP_HOME / conf), slik at du enkelt kan tilpasse Hadoop-miljøkonfigurasjonen. De generiske alternativene og kommandoalternativene er et vanlig sett med alternativer som støttes av flere kommandoer.
Hadoop filsystem shell kommandoer (for kommandolinjegrensesnitt) ta ensartede ressursidentifikatorer (URI) som argumenter. En URI er en streng med tegn som brukes til å identifisere et navn eller en webressurs.
Strengen kan inneholde et systemnavn - en kvalifisering for naturen til datakilden. For HDFS er skjermnavnet hdfs, og for det lokale filsystemet, er skjermnavnet fil. Hvis du ikke angir et systemnavn, er standardprogrammet navnet som er angitt i konfigurasjonsfilen. En fil eller katalog i HDFS kan spesifiseres på en fullstendig kvalifisert måte, for eksempel i dette eksempelet:
hdfs: // namenodehost / foreldre / barn
Eller det kan ganske enkelt være / foreldre / barn hvis konfigurasjonsfilen peker til hdfs: // namenodehost.
Hadoop-filsystemskallkommandoene, som ligner Linux-filkommandoer, har følgende generelle syntaks:
hadoop hdfs dfs - file_cmd
Lesere med noen tidligere Hadoop-opplevelse kan spørre, "Men hva om hadoop fs kommandoen?"Fs-kommandoen er utdatert i Hadoop 0. 2-utgivelsesserien, men den fungerer fortsatt i Hadoop 2. Bruk hdfs dfs i stedet.
Som du kanskje forventer, bruker du kommandoen mkdir til å lage en katalog i HDFS, akkurat som du ville gjøre på Linux eller på Unix-baserte operativsystemer. Selv om HDFS har en standard arbeidskatalog, / bruker / $ USER, hvor $ USER er brukernavnet ditt, må du lage det selv ved å bruke syntaksen
$ hadoop hdfs dfs -mkdir / user / login_user_name
For eksempel å lage en katalog med navnet "joanna", kjør denne mkdir-kommandoen:
$ hadoop hdfs dfs -mkdir / user / joanna
Bruk Hadoop put-kommandoen til å kopiere en fil fra ditt lokale filsystem til HDFS:
$ hadoop hdfs dfs -put filnavn / bruker / login_user_name
For eksempel, for å kopiere en fil som heter data. txt til denne nye katalogen, kjør følgende put kommandoen:
$ hadoop hdfs dfs -put data. txt / user / joanna
Kjør kommandoen ls for å få en HDFS-filoppføring:
$ hadoop hdfs dfs -ls. Funnet 2 artikler drwxr-xr-x - joanna supergroup 0 2013-06-30 12: 25 / bruker / joanna -rw-r - r-- 1 joanna supergroup 118 2013-06-30 12: 15 / bruker / joanna / data. txt
Filoppføringen bryter seg ned som beskrevet i denne listen:
-
Kolonne 1 viser filmodus ("d" for katalog og "-" for normal fil, etterfulgt av tillatelsene). De tre tillatelsestypene - les (r), skriv (w) og kjøre (x) - er de samme som du finner på Linux- og Unix-baserte systemer. Eksekutiv tillatelsen for en fil ignoreres fordi du ikke kan utføre en fil på HDFS. Tillatelsene er gruppert av eier, gruppe og offentlig (alle andre).
-
Kolonne 2 viser replikasjonsfaktoren for filer. (Konseptet for replikering gjelder ikke kataloger.) Blokkene som utgjør en fil i HDFS, replikeres for å sikre feiltoleranse. replikasjonsfaktoren, eller antall replikas som holdes for en bestemt fil, kan konfigureres. Du kan spesifisere replikeringsfaktoren når filen er opprettet eller senere, via søknaden din.
-
Kolonner 3 og 4 viser filen eier og gruppen . Supergruppe er navnet på gruppen superuser, og en superbruker er brukeren med samme identitet som navnetNode-prosessen. Hvis du starter NameNode, er du superbrukeren for nå. Dette er en spesiell gruppe - Vanlige brukere vil ha sine brukergrupper til en gruppe uten spesielle egenskaper - en gruppe som bare er definert av en Hadoop-administrator.
-
Kolonne 5 viser størrelsen på filen, i byte, eller 0 hvis den er en katalog.
-
Kolonnene 6 og 7 viser dato og klokkeslett for den siste modifikasjonen, henholdsvis.
-
Kolonne 8 viser det ukvalifiserte navnet (som betyr at systemnavnet ikke er angitt) av filen eller katalogen.
Bruk Hadoop-kommandoen til å kopiere en fil fra HDFS til ditt lokale filsystem:
$ hadoop hdfs dfs -get filnavn / bruker / login_user_name
Bruk Hadoop rm kommandoen for å slette en fil eller en tom katalog:
$ hadoop hdfs dfs -rm filnavn / bruker / login_user_name
Bruk hadoop hdfs dfs -help-kommandoen for å få detaljert hjelp for alle alternativ.
