30+ Hadoop-intervjufrågor och svar

By rik

Enligt statistik från Forbes använder upp till 90% av världens företag stordataanalys för att utforma sina investeringsstrategier.

I takt med att intresset för stordata ökar, växer också antalet jobbmöjligheter inom Hadoop-området. Det finns nu fler möjligheter än tidigare.

För att hjälpa dig att säkra en expertroll inom Hadoop har vi sammanställt en lista med vanliga intervjufrågor och svar. Den här artikeln ska ge dig en bra grund för att lyckas med din intervju.

Att känna till den potentiella lönenivån för roller inom Hadoop och stordata kan vara en extra motivation, eller hur? 🤔

  • Enligt indeed.com tjänar en Hadoop-utvecklare i USA i genomsnitt $144 000 per år.
  • Itjobswatch.co.uk rapporterar att den genomsnittliga årslönen för en Hadoop-utvecklare i Storbritannien ligger på £66 750.
  • I Indien anger indeed.com att en Hadoop-utvecklare kan förvänta sig en genomsnittlig årslön på 1 600 000 INR.

Ganska lukrativt, eller hur? Låt oss nu gå in på vad Hadoop faktiskt är.

Vad är Hadoop?

Hadoop är ett populärt ramverk skrivet i Java som använder programmeringsmodeller för att bearbeta, lagra och analysera stora datamängder.

Dess konstruktion gör att det kan skala från enskilda servrar till flera maskiner, vilket möjliggör både lokal databearbetning och lagring. Dessutom är Hadoop mycket pålitligt tack vare sin förmåga att upptäcka och hantera fel i applikationslagret, vilket ger hög tillgänglighet.

Låt oss nu dyka in i de vanligaste intervjufrågorna om Hadoop, tillsammans med de korrekta svaren.

Intervjufrågor och svar om Hadoop

Vad är lagringsenheten i Hadoop?

Svar: Hadoop använder Hadoop Distributed File System (HDFS) som sin lagringsenhet.

Hur skiljer sig Network Attached Storage från Hadoop Distributed File System?

Svar: HDFS är ett distribuerat filsystem som används för att lagra stora filer på standardhårdvara. NAS, å andra sidan, är en filbaserad server för datalagring som ger heterogena klientgrupper tillgång till information.

I NAS lagras data på dedikerad maskinvara, medan HDFS distribuerar datablock över alla maskiner i Hadoop-klustret.

NAS använder avancerad lagringsutrustning, vilket kan vara dyrt, medan den standardhårdvara som används i HDFS är mer kostnadseffektiv.

NAS separerar datalagring från beräkning, vilket gör det mindre lämpligt för MapReduce. HDFS däremot är utformat för att fungera med MapReduce, där beräkningarna flyttas till datan istället för tvärtom.

Förklara MapReduce i Hadoop och Shuffling

Svar: MapReduce består av två distinkta uppgifter som Hadoop-program utför för att skapa hög skalbarhet över hundratals eller tusentals servrar inom ett Hadoop-kluster. Shuffling är processen där kartdata överförs från Mappers till de nödvändiga Reducer i MapReduce.

Ge en inblick i Apache Pig-arkitekturen

Apache Pig Arkitektur

Svar: Apache Pig-arkitekturen innehåller en Pig Latin-tolk som behandlar och analyserar stora datamängder med hjälp av Pig Latin-skript.

Apache Pig består av datauppsättningar där dataoperationer som join, load, filter, sort och group utförs.

Programmeringsspråket Pig Latin använder mekanismer som Grunt shell, UDF:er och inbäddade metoder för att skriva Pig-skript som utför de nödvändiga uppgifterna.

Pig förenklar programmerarnas arbete genom att omvandla de skrivna skripten till serier av MapReduce-jobb.

Apache Pig-arkitekturens komponenter inkluderar:

  • Parser – Hanterar Pig-skripten, kontrollerar syntaxen och utför typkontroll. Parserns output är en riktad acyklisk graf (DAG) som representerar Pig Latins uttryck och logiska operatorer.
  • Optimizer – Tillämpar logiska optimeringar, som projektion och pushdown, på DAG:en.
  • Kompilator – Kompilerar den optimerade logiska planen från optimeraren till en serie MapReduce-jobb.
  • Execution Engine – Utför den slutliga körningen av MapReduce-jobben för att generera det önskade resultatet.
  • Execution Mode – Apache Pig har huvudsakligen två körningslägen: lokalt och Map Reduce.

Svar: I Local Metastore körs tjänsten i samma JVM som Hive, men ansluter till en databas som körs i en separat process på samma eller en annan dator. I Remote Metastore körs Metastore i sin egen JVM, separat från Hives JVM.

Vilka är Big Datas fem V?

Svar: Dessa fem V representerar stordatas huvudsakliga egenskaper:

  • Värde: Stordata syftar till att ge betydande fördelar, som hög avkastning på investeringar (ROI) för organisationer som använder det i sin verksamhet. Det värdet kommer från upptäckt av insikter och mönster, vilket leder till starkare kundrelationer och effektivare verksamhet.
  • Variation: Representerar mångfalden av datatyper som samlas in, inklusive format som CSV, videor, ljud etc.
  • Volym: Beskriver den enorma mängd data som hanteras och analyseras av organisationer, ofta med exponentiell tillväxt.
  • Hastighet: Den hastighet med vilken data genereras och växer.
  • Veracity: Hänvisar till osäkerheten eller felaktigheten i data på grund av ofullständighet eller inkonsekvens.

Förklara olika datatyper i Pig Latin.

Svar: Datatyperna i Pig Latin delas in i atomära datatyper och komplexa datatyper.

De atomära datatyperna är de grundläggande datatyperna:

  • Int – Ett signerat 32-bitars heltal. Exempel: 13
  • Lång – Ett signerat 64-bitars heltal. Exempel: 10L
  • Flytande – Ett signerat 32-bitars flyttal. Exempel: 2.5F
  • Dubbel – Ett signerat 64-bitars flyttal. Exempel: 23.4
  • Boolean – Ett booleskt värde: True/False
  • Datetime – Ett datum- och tidsvärde. Exempel: 1980-01-01T00:00.00.000+00:00

Komplexa datatyper inkluderar:

  • Karta – En samling nyckel-värdepar. Exempel: [’color’#’yellow’, ’number’#3]
  • Väska – En samling av tupler. Exempel: {(Henry, 32), (Kiti, 47)}
  • Tuppel – En ordnad samling fält. Exempel: (Ålder, 33)

Vad är Apache Oozie och Apache ZooKeeper?

Svar: Apache Oozie är en schemaläggare i Hadoop som hanterar schemaläggning och sammanlänkning av Hadoop-jobb till ett enda logiskt arbete.

Apache ZooKeeper samordnar olika tjänster i en distribuerad miljö. Det förenklar arbetet för utvecklare genom att tillhandahålla enkla tjänster som synkronisering, gruppering, konfigurationshantering och namngivning. ZooKeeper erbjuder också stöd för köer och val av ledare.

Vilken roll har Combiner, RecordReader och Partitioner i en MapReduce-operation?

Svar: Combiner fungerar som en mini-reducerare. Den tar emot och bearbetar data från kartuppgifter och skickar sedan resultatet till reduceringsfasen.

RecordReader kommunicerar med InputSplit och konverterar data till nyckel-värdepar, så att mappen kan läsa dem korrekt.

Partitioneraren bestämmer antalet reducerade uppgifter som krävs för att sammanfatta datan och hur outputen från combinern ska skickas till reduceraren. Den styr också nyckelpartitionering av de mellanliggande kartresultaten.

Nämn olika leverantörsspecifika distributioner av Hadoop.

Svar: Olika leverantörer erbjuder distributioner av Hadoop:

  • IBM Open-plattform.
  • Cloudera CDH Hadoop Distribution
  • MapR Hadoop Distribution
  • Amazon Elastic MapReduce
  • Hortonworks Data Platform (HDP)
  • Pivotal Big Data Suite
  • Datastax Enterprise Analytics
  • Microsoft Azures HDInsight – Molnbaserad Hadoop-distribution.

Varför är HDFS feltolerant?

Svar: HDFS replikerar data på olika DataNodes, vilket gör det feltolerant. Genom att lagra data på olika noder kan data hämtas från en annan nod om en nod kraschar.

Skilja mellan federation och hög tillgänglighet.

Svar: HDFS Federation erbjuder feltolerans som gör att data kan flöda kontinuerligt om en nod kraschar. Hög tillgänglighet å andra sidan kräver två separata maskiner där den aktiva NameNode och den sekundära NameNode konfigureras på den första respektive andra maskinen.

Federation kan ha ett obegränsat antal orelaterade namnnoder, medan hög tillgänglighet endast har två relaterade namnnoder: en aktiv och en standby, som arbetar kontinuerligt.

I federation delar NameNodes en metadatapool, där varje NameNode har sin egen dedikerade pool. I hög tillgänglighet körs de aktiva NameNodes en åt gången, medan standby-NameNodes är inaktiva och endast uppdaterar sina metadata emellanåt.

Hur kontrollerar man status för block och filsystemets hälsa?

Svar: Kommandot `hdfs fsck /` kan användas för att kontrollera HDFS-filsystemets hälsa på rotnivå eller i en specifik katalog.

HDFS fsck-kommandot används:

hdfs fsck / -files --blocks –locations> dfs-fsck.log

Kommandots beskrivning:

  • -files: Skriver ut de filer som kontrolleras.
  • –locations: Skriver ut placeringen av alla block som kontrolleras.

Kommando för att kontrollera blockens status:

hdfs fsck <path> -files -blocks
  • <path>: Startar kontrollerna från den angivna sökvägen.
  • – blocks: Skriver ut filblocken som kontrolleras.

När används kommandona `rmadmin-refreshNodes` och `dfsadmin-refreshNodes`?

Svar: De två kommandona används för att uppdatera nodinformation när noder tas i drift eller när noddrifttagning är klar.

Kommandot `dfsadmin-refreshNodes` körs från HDFS-klienten och uppdaterar NameNodes nodkonfiguration. `rmadmin-refreshNodes` utför ResourceManagers administrativa uppgifter.

Vad är en Checkpoint?

Svar: Checkpoint är en operation som kombinerar de senaste filsystemändringarna med den senaste FSImage. Detta gör att redigeringsloggfilerna hålls tillräckligt små för att snabba upp starten av en NameNode. Checkpoint sker i den sekundära NameNode.

Varför använder vi HDFS för applikationer med stora datamängder?

Svar: HDFS använder en DataNode- och NameNode-arkitektur för ett distribuerat filsystem.

Dessa arkitekturer ger högpresterande åtkomst till data över mycket skalbara Hadoop-kluster. NameNode lagrar filsystemets metadata i RAM, vilket innebär att mängden minne begränsar antalet HDFS-filer.

Vad gör kommandot `jps`?

Svar: Kommandot Java Virtual Machine Process Status (JPS) kontrollerar om specifika Hadoop-demoner som NodeManager, DataNode, NameNode och ResourceManager körs eller inte. Kommandot måste köras från root-användare för att kontrollera driftnoderna på värden.

Vad är ”spekulativ exekvering” i Hadoop?

Svar: I stället för att försöka åtgärda långsamma uppgifter startar masternoden i Hadoop en annan instans av samma uppgift som en backupuppgift (spekulativ uppgift) på en annan nod. Spekulativ exekvering sparar tid, speciellt i miljöer med hög arbetsbelastning.

Nämn de tre lägena som Hadoop kan köras i.

Svar: De tre lägena som Hadoop körs i är:

  • Fristående nod: Hadoop-tjänsterna körs i en enda Java-process med det lokala filsystemet.
  • Pseudo-distribuerad nod: Alla Hadoop-tjänster körs i en enda nod.
  • Fullt distribuerad nod: Hadoop master- och slavtjänster körs på separata noder.

Vad är en UDF?

Svar: UDF (User Defined Functions) låter dig skriva egna funktioner för att bearbeta kolumnvärden i Impala-frågor.

Vad är DistCp?

Svar: DistCp, eller Distributed Copy, är ett verktyg som används för att kopiera stora mängder data mellan eller inom kluster. Med hjälp av MapReduce kan DistCp effektivt distribuera kopieringen av stora datamängder och utföra andra uppgifter som felhantering, återställning och rapportering.

Svar: Hive metastore är en tjänst som lagrar metadata för Apache Hive-tabeller i en relationsdatabas, som MySQL. Den tillhandahåller ett API för metastoretjänsten som ger centraliserad åtkomst till metadata.

Definiera RDD.

Svar: RDD (Resilient Distributed Dataset) är Sparks datastruktur, en oföränderlig distribuerad samling av dina dataelement som beräknas på olika klusternoder.

Hur kan native libraries inkluderas i YARN-jobb?

Svar: Det kan göras antingen med -Djava.library.path-alternativet i kommandot eller genom att ställa in LD_LIBRARY_PATH i .bashrc-filen med följande format:

<property>
<name>mapreduce.map.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/my/libs</value>
</property>

Förklara ’WAL’ i HBase.

Svar: Write Ahead Log (WAL) är ett återställningsprotokoll som registrerar ändringar av MemStore-data i HBase till den filbaserade lagringen. WAL återställer dessa data om en RegionalServer kraschar eller innan MemStore töms.

Är YARN en ersättning för Hadoop MapReduce?

Svar: Nej, YARN är inte en ersättning för Hadoop MapReduce. YARN är en kraftfull teknik i Hadoop 2.0 som stöder MapReduce.

Vad är skillnaden mellan ORDER BY och SORT BY i Hive?

Svar: Båda kommandona sorterar data, men SORT BY ger bara delvis sorterade resultat.

SORT BY kräver en reducering för att beställa raderna, och flera reducerare kan användas. I det fallet kommer resultatet bara att vara delvis sorterat.

ORDER BY kräver däremot bara en reducering för en total sortering. Nyckelordet LIMIT kan också användas för att minska den totala sorteringstiden.

Vad är skillnaden mellan Spark och Hadoop?

Svar: Både Hadoop och Spark är distribuerade ramverk för databearbetning, men deras huvudsakliga skillnad är typen av bearbetning. Hadoop är effektivt för batchbearbetning, medan Spark är mer effektivt för realtidsdatabehandling.

Hadoop läser och skriver mestadels filer till HDFS, medan Spark använder konceptet Resilient Distributed Dataset för att bearbeta data i RAM.

Hadoop har hög latens utan ett interaktivt läge för att bearbeta data, medan Spark har låg latens och kan bearbeta data interaktivt.

Jämför Sqoop och Flume.

Svar: Sqoop och Flume är Hadoop-verktyg för att samla in data från olika källor och ladda in dem i HDFS.

  • Sqoop (SQL-till-Hadoop) extraherar strukturerad data från databaser som Teradata, MySQL och Oracle, medan Flume är mer användbart för att extrahera ostrukturerad data från databaskällor och ladda in dem i HDFS.
  • Flume är händelsedrivet, medan Sqoop inte är det.
  • Sqoop använder en kontaktbaserad arkitektur där kopplingar vet hur man ansluter till olika datakällor. Flume använder en agentbaserad arkitektur där en agent är den kod som används för att hämta data.
  • Flumes distribuerade natur gör det enkelt att samla in och aggregera data. Sqoop är användbart för parallell dataöverföring, vilket resulterar i flera utdatafiler.

Förklara BloomMapFile.

Svar: BloomMapFile är en klass som utökar MapFile-klassen och använder dynamiska Bloom-filter, vilket ger snabba tester för medlemskap i nycklar.

Lista skillnaden mellan HiveQL och PigLatin.

Svar: HiveQL är ett deklarativt språk som liknar SQL, medan PigLatin är ett procedurbaserat språk på hög nivå för dataflöden.

Vad är datarensning?

Svar: Datarensning är processen att ta bort eller korrigera felaktiga, ofullständiga, korrupta, duplicerade eller felaktigt formaterade data i en datamängd.

Denna process förbättrar datakvaliteten och säkerställer att informationen är exakt, konsekvent och tillförlitlig för att organisationer ska kunna fatta välgrundade beslut.

Slutsats💃

Med den ökande efterfrågan på stordata och Hadoop-expertis är det viktigt att förbereda sig väl för en anställningsintervju. De intervjufrågor och svar som presenteras i den här artikeln kan vara en värdefull resurs.

Du kan även utforska andra resurser för att lära dig mer om stordata och Hadoop.

Lycka till! 👍