Apache Hadoop

Apache Hadoop

Apache Hadoop-logo
Grunnleggende data

utvikler Apache Software Foundation
Forlagsår 2005
Gjeldende  versjon 3.3.0
( 14. juli 2020 )
operativsystem plattformuavhengig
programmeringsspråk Java
kategori Distribuert filsystem
Tillatelse Apache
Tysktalende Nei
hadoop.apache.org

Apache Hadoop er et gratis rammeverk skrevet i Java for skalerbar, distribuert programvare. Den er basert på MapReduce- algoritmen fra Google Inc. og på forslag fra Googles filsystem og gjør det mulig å utføre intensive databehandlingsprosesser med store datamengder ( big data , petabyte range) på dataklynger . Hadoop ble initiert av Lucene- oppfinneren Doug Cutting og først publisert i 2006. 23. januar 2008 ble det Apache Software Foundation sitt toppnivå-prosjekt . Brukere inkluderer Facebook , a9.com , AOL , Baidu , IBM , ImageShack og Yahoo .

Komponenter

Hadoop distribuert filsystem (HDFS)

HDFS er et svært tilgjengelig filsystem for lagring av store datamengder på filsystemene til flere datamaskiner (noder). Filer er delt inn i datablokker med en fast lengde og distribuert redundant til de deltakende nodene. Det er master- og arbeidernoder. En hovednode , den såkalte NameNode, behandler innkommende dataforespørsler, organiserer lagring av filer i arbeidernodene og lagrer eventuelle metadata . HDFS støtter filsystemer med flere hundre millioner filer. Både filblokklengden og graden av redundans kan konfigureres.

HDFS er egnet for store filer. Mange mindre filer gir ikke mening og bør kombineres på en applikasjonstransparent måte ved hjelp av Hadoop Archives (HAR). I fremtidige utgivelser vil til og med små filer støttes transparent av Hadoop Distributed Data Store (HDDS).

HDFS kan erstattes av andre distribuerte filsystemer som CassandraFS , MapRFS , GPFS , S3 og Azure Blockstorage . FTP-servere støttes også som filsystemer med begrensninger. Hadoop-økosystemapplikasjoner som skal bruke eksterne filsystemer, må støtte den tilsvarende datalokaliteten for optimal ytelse, noe som bør sikres gjennom tester.

Nok en ressursforhandler (YARN)

YARN gjør det mulig å administrere ressursene til en klynge dynamisk for forskjellige jobber. For eksempel gjør YARN det mulig for køer å bestemme fordelingen av klyngens kapasitet til individuelle jobber. I tillegg til CPU og minne, fra versjon 3.1.0, støttes administrasjon av GPU- og FPGA- ressurser, som først og fremst er relevante for maskinlæring . Dette kan konfigureres for applikasjoner og brukere.

Kart reduksjon

Hadoop implementerer MapReduce- algoritmen med konfigurerbare klasser for kart-, reduksjons- og kombinasjonsfaser. MapReduce blir i økende grad betraktet som foreldet i Hadoop-økosystemet og blir i økende grad erstattet av kjøringsmetoder basert på en Directed Acyclic Graph (DAG).

Regissert syklisk graf (DAG)

Utførelsesmetoder basert på en rettet asyklisk graf er gitt for Hadoop-økosystemet av for eksempel Apache TEZ, Apache Flink eller Apache Spark . De muliggjør rask gjennomføring av komplekse distribuerte algoritmer. På grunn av den modulære arkitekturen til Hadoop, kan disse prosessene enkelt kjøres side om side.

Gjennomsiktig kompresjon

Hadoop støtter gjennomsiktig komprimering av filer for optimal lagring og ressursstøtte. En rekke formater støttes, inkludert Snappy for rask komprimering, zlib for høye kompresjonshastigheter og Bzip2 for høyeste komprimering. Ethvert annet format kan gjøres transparent tilgjengelig for Hadoop-applikasjoner. Komprimering kan forbedre ytelsen, da det reduserer de nødvendige IO-operasjonene betydelig. Imidlertid er ikke alle typer komprimering "delbar"; H. kan dekomprimeres parallelt. Moderne filformater som ORC eller Parkett omgår dette ved å dele filene som skal komprimeres internt i blokker. Dette betyr at hvert komprimeringsformat er egnet for behandling av filene parallelt.

Transparent filformatstøtte

Hadoop støtter transparent bruk av forskjellige filformater, avhengig av applikasjon. Både ustrukturerte og strukturerte formater støttes, inkludert enkle tekstformater som CSV , JSON, men også svært optimaliserte skjemabaserte filer ( Apache Avro ) og svært optimaliserte tabellformater som ORC og Parquet. I tillegg kan andre filformater enkelt utvikles. Andre plugins støtter analysen av CryptoLedgers som B. Bitcoin blockchain.

XML betraktes som foreldet i Hadoop-økosystemet fordi det ikke er egnet for høyytelses big data-applikasjoner. I stedet anbefales det å bruke Apache Avro som utvekslingsformat og ORC eller Parkett som spørringsformat for høyt strukturerte data.

Utvidelser

HBase

HBase er en skalerbar, enkel database for å administrere veldig store datamengder i en Hadoop-klynge. HBase-databasen er basert på en gratis implementering av Bigtable . Denne datastrukturen er egnet for data som sjelden endres, men som legges til veldig ofte. Med HBase kan milliarder av rader distribueres og administreres effektivt . Den er egnet for behandling av små datamengder fra store datamengder eller for å skrive ofte endrede data eller individuelle data raskt. Apache Phoenix-prosjektet tilbyr et SQL99-grensesnitt for HBase.

Hive

Hive utvider Hadoop med datalagerfunksjonaliteter , nemlig spørrespråket HiveQL og indekser. HiveQL er et spørrespråk basert på SQL og gjør det dermed mulig for utvikleren å bruke en SQL99-lignende syntaks. Hybrid prosessuell SQL On Hadoop (HPL / SQL) har blitt støttet siden Hive 2.0, som støtter kjøringen av PL / SQL og mange andre SQL-dialekter. I tillegg, ved å bruke ORC-tabellformat, LLAP og mange andre optimaliseringer, støttes komplekse interaktive spørsmål i økende grad i tillegg til batch-applikasjoner. Disse optimaliseringene kommer fra Stinger-initiativet, som også gir støtte for SQL: 2011 Analytics. Utvidelser som HiveMall tilbyr analyser i databaser for komplekse maskinlæringsapplikasjoner. Transaksjonalitet støttes også av ORC-tabellformatet. Det er mulig å definere tradisjonelle indekser som B-treindeks og bitmapindeks. For datalager scenarier anbefales det imidlertid ikke å bruke dette, men å bruke ORC-formatet med støtte for komprimering, blomstringsfiltre og lagringsindekser. Dette muliggjør mye mer effektive spørsmål, forutsatt at dataene er sortert. Moderne databaseapparater som Oracle Exadata støtter disse optimaliseringsalternativene og anbefaler også å unngå tradisjonelle indekser av ytelsesgrunner.

Hive støtter utførelse av spørrespråk gjennom såkalte "motorer". MapReduce (MR) regnes som foreldet og bør ikke lenger brukes (merket som "utdatert" siden 2.0). I stedet anbefales TEZ. Alternativt tilbys Spark som motor. Begge er basert på optimaliseringsmetoder ved hjelp av rettet asykliske grafer.

LLAP tilbyr en gjennomsiktig cache i minnet som er rettet mot interaktive applikasjoner for store datalager.

Sommeren 2008 gjorde Facebook , den opprinnelige utvikleren av Hive, prosjektet tilgjengelig for open source-fellesskapet. Hadoop-databasen brukt av Facebook er en av de største i verden med litt over 100 petabyte (per august 2012). Dette lageret vokste til 300 PByte innen 2014.

Gris

Gris kan brukes til å lage MapReduce-programmer på høynivåspråket Pig Latin for Hadoop. Gris er preget av følgende egenskaper:

  • Enkelhet. Parallell gjennomføring av komplekse analyser er lett å forstå og gjennomføre.
  • Optimalisering. Gris optimaliserer uavhengig gjennomføring av komplekse operasjoner ved hjelp av Carsten-metoden.
  • Utvidbarhet. Gris kan utvides med egne funksjoner og dermed tilpasses individuelle bruksområder.

Chukwa

Chukwa muliggjør overvåking i sanntid av svært store distribuerte systemer.

Dyrepasser

ZooKeeper brukes til (distribuert) konfigurasjon av distribuerte systemer.

Gnist

Spark er en in-memory batch-behandlingsmotor som primært ble utviklet for maskinlæringsapplikasjoner. Grafapplikasjoner, streamingapplikasjoner og filbaserte batchjobber støttes. En maskinlæringsapplikasjon og en in-memory batch prosessering SQL-motor, som Hive støtter, er tilgjengelig.

Kvise

Flink er en strømbehandlingsmotor i minnet og tilbyr i utgangspunktet lignende funksjoner som Spark, med sterkere fokus på maskinlæring og kompleks hendelsesbehandling. Den er basert på det europeiske forskningsprosjektet Stratosphere. Flink ble publisert etter Spark, men inkluderte effektiv minneadministrasjon av store datamengder mye tidligere, noe som ikke var basert på de langsomme serialiseringsmetodene til Java.

Antennes

Ignite er en distribuert stor databuffer for interaktive spørsmål for å øke hastigheten på spørsmål om ofte brukte data. Den støtter HDFS og Spark. Med HDFS-støtte kan utvalgte tabeller / partisjoner holdes i minnet i Hive.

JanusGraph

JanusGraph er en grafdatabase som passer for komplekse grafapplikasjoner med kvadrillioner av noder og kanter. Ulike lagringsmotorer og indeksmotorer støttes, inkludert Apache Hbase som lagringsmotor og Apache Solr som indeksmotor. JanusGraph er basert på standardstakken for grafapplikasjoner: TinkerPop. Dette støtter det interaktive språkspråket Gremlin . JanusGraph er open source-etterfølgeren til TitanDB.

arkitektur

Hadoop bør forstås som et økosystem der Hadoop samhandler med mange andre utvidelser. Derfor må en passende arkitektur velges.

Lambda arkitektur

En populær arkitektur her er lambda-arkitekturen. Det skilles mellom følgende nivåer:

  • Batch Layer: Dette laget behandler data som en del av lange batchprosesser. Dette dekkes ofte av Hadoop MapReduce, Spark eller Hive i kombinasjon med HDFS-filsystemet.
  • Speed ​​Layer: Dette laget behandler datastrømmer (streaming) fra "live" -hendelser. Dette er store datastrømmer, ofte flere terabyte / time, fra enheter fra Internet of Things / Industry 4.0 eller sosiale nettverk som B. Twitter, Facebook osv. Online maskinlæringsalgoritmer brukes ofte her fordi de kan tilpasse modellen til de siste hendelsene. Kafka, for å samle datastrømmene, og Spark Streaming, Flink Streaming eller Storm brukes ofte her.
  • Serveringslag: Dette laget gjør resultatene fra batchlaget og hastighetslaget tilgjengelig for brukere så raskt som mulig for interaktive analyser. Dette området dekkes ofte av tradisjonelle databaser, men oftere og oftere også av NoSQL-databaser, da disse tilbyr mer passende datastrukturer, som f.eks. For eksempel dokumentdatabaser (f.eks. MongoDB), grafdatabaser (f.eks. TitanDB), kolonneorienterte databaser (f.eks. HBase) eller nøkkelverdilagre (f.eks. Redis).

Kappa arkitektur

Batchlaget blir fullstendig dispensert i Kappa-arkitekturen. Bare "live" hendelser blir vurdert og behandlet for å gjøre dem tilgjengelige for brukere i serveringslaget. Dette gir spesielle utfordringer når det gjelder tilgjengelighet, pålitelighet og levering én gang.

Utmerkelser

Et klyngesystem basert på Apache Hadoop vant Terabyte Sort Benchmark- prisen i 2008 og 2009 . Blant systemene som ble testet i IT-referansen , klarte den å sortere store datamengder (hundre terabyte med heltall i 2009 ) raskest - men med et betydelig større antall noder enn konkurrentene, da dette ikke er regulert i referanseindeksen vedtekter. Det var det første Java og også det første open source-programmet som vant denne referansen.

The Guardian ga Apache Hadoop i mars 2011 på Media Guardian Innovation Awards kåringen Årets innovatør . Prosjektet henviste innovasjoner som WikiLeaks og iPad til sine steder. Det ble fremhevet at Hadoop muliggjør så allsidige og vidtrekkende applikasjoner at det kan vise seg å være begynnelsen på en ny datarevolusjon.

Kommersiell støtte og kommersielle gafler

Siden bruken av Hadoop er spesielt interessant for selskaper, er det en rekke selskaper som tilbyr kommersiell støtte eller gafler fra Hadoop:

  • Med CDH gir Cloudera en "enterprise ready" åpen kildekodedistribusjon for Hadoop (nåværende versjon: CDH 6.0.0). I begynnelsen av 2019 ble den andre store datadistribusjonsleverandøren Hortonworks integrert. Hortonworks kom opprinnelig fra en spin-off fra Yahoo og Benchmark Capital.
  • Teradata har inngått et samarbeid med Hortonworks for å tilby en utvidet distribusjon. Teradata Open Distribution for Hadoop (TDH) 2.1 forbinder dermed Hadoop med Teradata-produkter. Teradata er verdensledende innen datalagring.
  • Microsoft integrerer for øyeblikket Hadoop i Windows Azure og SQL Server . Integrasjonen vil være en del av SQL Server 2019.
  • Den Google App Engine MapReduce støtter Hadoop programmer.
  • Den IBM produkt InfoSphere BigInsights er basert på Hadoop.
  • Med Greenplum HD tilbyr EMC² Hadoop som en del av en produktpakke.
  • Med SAP HANA Vora tilbyr SAP SE en forbindelse fra Hadoop til SAP HANA .
  • SAS gjør det mulig å utføre SAS-skript på en distribuert måte i en Hadoop-klynge.
  • Matlab fra Mathworks støtter distribuert utføring av Matlab-skript på en Hadoop-klynge.

Det er også andre leverandører.

litteratur

  • Ramon Wartala: Hadoop. Pålitelige, distribuerte og skalerbare big data-applikasjoner. Open Source Press, München 2012. ISBN 978-3-941841-61-1

weblenker

Individuelle bevis

  1. hadoop.apache.org .
  2. http://archive.apache.org/dist/hadoop/core/
  3. https://cwiki.apache.org/confluence/display/HADOOP2/PoweredBy
  4. Brukerveiledning for HDFS. Apache Software Foundation, arkivert fra originalen 21. mai 2012 ; åpnet 26. mars 2017 (engelsk).
  5. https://hadoop.apache.org/docs/current/hadoop-archives/HadoopArchives.html
  6. arkivert kopi ( Memento av den opprinnelige fra 27 mai 2018 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. @1@ 2Mal: Webachiv / IABot / cwiki.apache.org
  7. https://wiki.apache.org/hadoop/HCFS
  8. http://hadoop.apache.org/docs/r2.7.1/api/org/apache/hadoop/fs/ftp/FTPFileSystem.html
  9. https://github.com/ZuInnoTe/hadoopcryptoledger
  10. https://hbase.apache.org/
  11. https://phoenix.apache.org/
  12. https://cwiki.apache.org/confluence/display/Hive/Home
  13. https://de.hortonworks.com/solutions/
  14. https://github.com/myui/hivemall
  15. https://snippetessay.wordpress.com/2015/07/25/hive-optimizations-with-indexes-bloom-filters-and-statistics/
  16. https://cwiki.apache.org/confluence/display/Hive/LLAP
  17. http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/
  18. arkivert kopi ( minnesmerke av den opprinnelige fra 26 mars 2017 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. @1@ 2Mal: Webachiv / IABot / de.scribd.com
  19. https://code.facebook.com/posts/229861827208629/scaling-the-facebook-data-warehouse-to-300-pb/
  20. https://pig.apache.org/
  21. https://spark.apache.org/
  22. https://flink.apache.org/
  23. http://janusgraph.org/
  24. Alex Woodie: JanusGraph plukker opp der TitanDB slapp. I: datanami. 13. januar 2017, åpnet 14. april 2018 .
  25. https://zuinnote.eu/blog/?p=212
  26. Ny Chris Nyberg og Mehul Shah: Sorter benchmark-hjemmesiden. Hentet 30. november 2010 .
  27. Divergerende synspunkter på Big Data-tetthet og noe gimm
  28. Zeg Grzegorz Czajkowski: Sortering 1PB med MapReduce . Google. 21. november 2008. Hentet 26. mars 2017.
  29. Owen O'Malley - Yahoo! Grid Computing Team: Apache Hadoop vinner Terabyte Sort Benchmark . Juli 2008. Arkivert fra originalen 15. oktober 2009. Hentet 14. oktober 2009: “ Dette er første gang at et Java- eller et open source-program vinner. "(Frakoblet)
  30. guardian.co.uk: Megas 2011: Vinnere . 25. mars 2011. Hentet 25. mars 2011: ” Systemets applikasjoner er mangfoldige og vidtrekkende, og ettersom datemanipulering og administrasjon spiller en stadig større rolle i alle våre liv, kan Hadoop komme til å bli sett på som begynnelsen på en ny datarevolusjon. "
  31. https://www.cloudera.com/downloads/cdh/6-0-0.html
  32. ^ Cloudera: Cloudera og Hortonworks fullfører planlagt sammenslåing . 3. januar 2019. Hentet 22. september 2019: " Cloudera, Inc. (NYSE: CLDR), selskapets dataskyselskap, kunngjorde i dag fullføring av fusjonen med Hortonworks, Inc. Cloudera vil levere den første dataskyen for virksomheten - og låser kraften til alle data, som kjører i hvilken som helst sky fra Edge til AI, på en 100% åpen kildekode-dataplattform "
  33. PresseBox: Teradata støtter Hadoop 2 med en oppdatert Hadoop-portefølje . 12. juni 2014. Tilgang 26. mars 2017: “ Den oppdaterte programvaren Teradata Open Distribution for Hadoop (TDH) 2.1 er en videreutviklet programvareplattform basert på Hortonworks Data Platform 2.1. "
  34. FSeiwerth: Microsoft, Big Data og Hadoop - hva ligger bak dem? . 31. oktober 2011. Hentet 3. april 2012: " I samarbeid med partneren Hortonworks er det planlagt å" portere "Hadoop til Windows-serveren. [...] Det er også planlagt å tilby Hadoop som en tjeneste i Windows Azure. "
  35. SQL Server 2019 preview kombinerer SQL Server og Apache gnist for å skape en enhetlig dataplattform . ( microsoft.com [åpnet 25. september 2018]).
  36. https://wiki.apache.org/hadoop/Distributions%20and%20Commercial%20Support