Jag hörde talas om många verktyg / ramar för att hjälpa människor att bearbeta sin data (big data-miljö).
Den ena heter Hadoop och den andra är noSQL-konceptet. Vad är skillnaden i bearbetningspunkten?
Är de kompletterande?
Kommentarer
- Röstade ned för bristande forskningsinsats. Hadoop och noSQL är väl definierade någon annanstans.
- @Spacedman Jag håller med, men det var ett exempel på en fråga från Area51 , om det var inte borttaget innan jag antar att den är giltig, och till och med jag visste svaret när jag skickade frågan (åtminstone generiskt).
Svar
Hadoop är inte en databas , hadoop är ett helt ekosystem.
De flesta kommer att hänvisa till mapreduce jobb medan de pratar om hadoop . Ett mapreduce-jobb delar stora datamängder i några små bitar av data och sprider dem över ett kluster av noder för att komma vidare. I slutändan kommer resultatet från varje nod att sättas ihop igen som en dataset.
Låt oss anta att du laddar in i hadoop en uppsättning <String, Integer>
med befolkningen i vissa stadsdelar i en stad och du vill få den genomsnittliga befolkningen över hela stadsdelarna i varje stad (figur 1).
figur 1
[new york, 40394] [new york, 134] [la, 44] [la, 647] ...
Nu kartlägger hadoop först varje värde med hjälp av tangenterna (figur 2)
figur 2
[new york, [40394,134]] [la, [44,647]] ...
Efter mappningen minskar värdena för varje nyckel till ett nytt värde (i det här exemplet genomsnittet över värdet för varje nyckel) (figur 3)
figur 3
[new york, [20264]] [la, [346]] ...
nu skulle allt bli gjort med allt. Du kan nu ladda resultatet i HDFS ( hadoop distribuerat filsystem) eller i alla DBMS eller filer.
Det är bara ett mycket grundläggande och enkel ex gott om vad hadoop kan göra. Du kan köra mycket mer komplicerade uppgifter i hadoop.
Som du redan nämnde i din fråga är hadoop och noSQL kompletterande. Jag känner till några inställningar där dvs. miljarder datauppsättningar från sensorer lagras i HBase och kommer sedan genom hadoop för att äntligen lagras i ett DBMS.
Svar
NoSQL är ett sätt att lagra data som inte kräver någon form av relation. Enkelheten i dess design och horisontella skalningsförmåga, ett sätt de lagrar data på är key : value
pardesign. Detta lämpar sig för bearbetning som liknar Hadoop. Användningen av en NoSQL-db beror verkligen på vilken typ av problem man letar efter.
Här är en bra wikipedia-länk NoSQL
Hadoop är ett system som är avsett att lagra och bearbeta stora bitar av data. Det är ett distribuerat filsystem dfs. Anledningen till att det gör detta är att det är centralt för dess design att det antar att maskinvarufel är vanligt, vilket gör flera kopior av samma information och sprider den över flera maskiner och rack, så om man går ner, inga problem, vi har ytterligare två exemplar. Här är en bra länk till Hadoop från wikipedia också, du kommer att se att det enligt min mening är mer än bara lagring, men också bearbetning: Hadoop