Apache Hadoop

De Viquipèdia
Crystal Clear app winprops bw.pngApache Hadoop
Hadoop logo new.svg Modifica el valor a Wikidata

Tipusframework Modifica el valor a Wikidata
Versió inicial2014
Versió estable/ 15 de desembre 2011
LlicènciaApache-2.0
GNU GPL Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiumultiplataforma i POSIX Modifica el valor a Wikidata
PlataformaMàquina Virtual Java Modifica el valor a Wikidata
Escrit enJava Modifica el valor a Wikidata
Equip
Creador/sDoug Cutting Modifica el valor a Wikidata
Desenvolupador(s)Apache Software Foundation Modifica el valor a Wikidata
Més informació
Lloc webhadoop.apache.org (anglès) Modifica el valor a Wikidata
Stack ExchangeEtiqueta Modifica el valor a Wikidata
Guia d'usuariGuia d'usuari Modifica el valor a Wikidata

Apatxe Hadoop és un entorn de treball per a programari, baix llicència lliure, per a programar aplicacions distribuïdes que manegin grans volums de dades (big data). Permet a les aplicacions treballar amb milers de nodes en xarxa i petabytes de dades. Hadoop es va inspirar en els documents de Google sobre MapReduce i Google File System (GFS).

Hadoop és un projecte de l'organització Apatxe que està sent construït i usat per una comunitat global de contribuents, mitjançant el llenguatge de programació Java. Yahoo! ha estat el major contribuent al projecte, i usa Hadoop extensivament en el seu negoci.

Característiques[modifica]

Arquitectura[modifica]

Hadoop consisteix bàsicament en el Hadoop Common, que proporciona accés als sistemes d'arxius suportats per Hadoop. El paquet de programari The Hadoop Common conté els arxius .jar i els scripts necessaris per a executar Hadoop. El paquet també proporciona codi font, documentació, i una secció de contribució que inclou projectes de la Comunitat Hadoop.

Una funcionalitat clau és que per a la programació efectiva de treball, cada sistema d'arxius ha de conèixer i proporcionar la seva ubicació: el nom del rack (més precisament, del *switch) on està el node treballador. Les aplicacions Hadoop poden usar aquesta informació per a executar treball en el node on estan les dades i, en defecte d'això, en el mateix rack/switch, reduint així el trànsit de xarxa troncal (backbone traffic). El sistema d'arxius HDFS usa això quan replica dades, per a intentar conservar còpies diferents de les dades en racks diferents. L'objectiu és reduir l'impacte d'un tall d'energia de rack o de fallada d'interruptor de manera que fins i tot si es produeixen aquests esdeveniments, les dades encara puguin ser llegibles.

Un clúster típic Hadoop inclou un node mestre i múltiples nodes esclau. El node mestre consisteix en jobtracker (rastrejador de treball), tasktracker (rastrejador de tasques), namenode (node de noms), i datanode (node de dades). Un esclau o computi node (node de còmput) consisteixen en un node de dades i un rastrejador de tasques. Hadoop requereix tenir instal·lats entre nodes en el clúster JRE 1.6 o superior, i SSH.

Sistemes d'arxius[modifica]

Hadoop Distributed File System

El Hadoop Distributed File System (HDFS) és un sistema d'arxius distribuït, escalable i portàtil escrit en Java per al framework Hadoop. Cada node en una instància Hadoop típicament té un únic node de dades; un clúster de dades forma el clúster HDFS. La situació és típica perquè cada node no requereix un node de dades per a ser present. Cada node serveix blocs de dades sobre la xarxa usant un protocol de bloqueig específic per a HDFS. El sistema d'arxius usa la capa TCP/IP per a la comunicació; els clients usen RPC per a comunicar-se entre ells. El HDFS emmagatzema arxius grans (la grandària ideal d'arxiu és de 128 MB9), a través de múltiples màquines. Aconsegueix fiabilitat mitjançant replicat de dades a través de múltiples hosts, i no requereix emmagatzematge RAID en ells. Amb el valor de replicació per defecte, 3, les dades s'emmagatzemen en 3 nodes: dos en el mateix rack, i un altre en un rack diferent. Els nodes de dades poden parlar entre ells per a reequilibrar dades, moure còpies, i conservar alta la replicació de dades. HDFS no compleix totalment amb POSIX perquè els requeriments d'un sistema d'arxius POSIX difereixen dels objectius d'una aplicació Hadoop, perquè l'objectiu no és tant complir els estàndards POSIX sinó la màxima eficàcia i rendiment de dades. HDFS va ser dissenyat per a gestionar arxius molt grans.9 HDFS no proporciona Alta disponibilitat.

Fig1. Exemple d'estructura distribuïda Hadoop

Usuaris prominents[modifica]

El 19 de febrer de 2008, Yahoo! Inc. va llançar el que pretenia era la més gran aplicació de producció Hadoop. El Yahoo! Search Webmap és una aplicació de Hadoop que s'executa en més de 10 000 nuclis Linux Clústers de ram i produeix dades que s'utilitzen actualment en tots els resultats de cerca de Yahoo!. El juny de 2009, Yahoo! va fer disponible el codi font de la versió de Hadoop que usa en producció.

A part de Yahoo!, altres organitzacions usen Hadoop per a executar còmputs enormes distribuïts. Algunes d'aquestes empreses inclouen

  • A9.com
  • AOL
  • Booz Allen Hamilton
  • EHarmony
  • eBay
  • Facebook
  • Fox Interactive Media
  • Freebase
  • IBM
  • ImageShack
  • ISI
  • Joost
  • Last.fm
  • LinkedIn
  • Meebo
  • Metaweb
  • Mitula
  • The New York Times
  • Ning
  • Powerset (ahora parte de Microsoft)
  • Rackspace
  • StumbleUpon
  • Tuenti
  • Twitter
  • Veoh
  • Zoosk
  • 1&1
  • MercadoLibre

Amb Sun Grid Engine i Nutanix[modifica]

Hadoop pot usar-se també en granges de computadores i entorns d'alt rendiment. La integració amb Sun Grid Engine va ser llançada, i executar Hadoop en Sun Grid (el servei sota demanda de utility computing) és possible. En la implementació inicial de la integració, el programador de temps de CPU no sap la localització de les dades. Desafortunadament, això significa que el processament no és fet sempre en el mateix rack on estan les dades; això era una característica principal de la Rutin Hadoop. Una millor integració amb localització de dades es va anunciar durant la Sun HPC Programari Workshop '09.

Sun també té el projecte Hadoop Live CD OpenSolaris, que permet executar un clúster Hadoop completament funcional usant un live CD.

Per part seva, la tecnologia de Nutanix, també és capaç de suportar plataformes Hadoop, aportant els grans avantatges de la seva arquitectura (redundància, rendiments, enorme facilitat de gestió, etc), sense les dependències de storage habituals en aquestes infraestructures Cloud.

Beneficis[modifica]

  • Capacitat d'emmagatzemar i processar enormes quantitats de qualsevol mena de dades, a l'instant. Amb l'increment constant dels volums i varietats de dades, especialment provinents de mitjans socials i la Internet de les Coses (IoT), aquesta és una consideració important.
  • Poder de còmput. El model de còmput distribuït de Hadoop processa big data a gran velocitat. Quants més nodes de còmput utilitza vostè, major poder de processament té.
  • Tolerància a fallades. El processament de dades i aplicacions està protegit contra fallades del maquinari. Si falla un node, els treballs són redirigits automàticament a altres maneres per a assegurar-se que no falli el processament distribuït. S'emmagatzemen múltiples còpies de totes les dades de manera automàtica.
  • Flexibilitat. A diferència de les bases de dades relacionals, no ha de processar prèviament les dades abans d'emmagatzemar-los. Pot emmagatzemar tantes dades com desitgi i decidir com utilitzar-los més tard. Això inclou dades no estructurades com a text, imatges i vídeos.
  • Sota cost. L'estructura de codi obert és gratuïta i empra maquinari comercial per a emmagatzemar grans quantitats de dades.
  • Escalabilitat. Pot fer créixer fàcilment el seu sistema perquè processi més dades són només agregar nodes. Es requereix poca administració

Limitants[modifica]

  • La programació MapReduce no és una opció adequada per a tots els problemes. stepEs adequada per a simples sol·licituds d'informació i problemes que es poden dividir en unitats independents, però no és eficient per a fer tasques analítiques iteratives i interactives.
  • Existeix una bretxa de talent àmpliament reconeguda. Pot ser difícil aconseguir programadors principiants amb suficients coneixements de Java perquè siguin productius amb MapReduce. Aquesta és una raó per la qual els proveïdors de distribució s'afanyen per a col·locar tecnologia relacional (SQL) sobre Hadoop.
  • Seguretat de dades. Un altre repte se centra al voltant d'aspectes de seguretat de dades fragmentades, encara que estan sorgint noves eines i tecnologies. El protocol d'autenticació Kerberos és un pas important per a tornar assegurances els entorns Hadoop.
  • Gestió i govern de dades complet. Hadoop no té eines fàcils d'usar i repletes de característiques per a la gestió de dades, depuració de dades.

Projectes basats en Hadoop[modifica]

  • Ambari: una eina basada en web per a provisionar, gestionar i monotoritzar l'Apache Hadoop, que inclo suport per a Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig i Sqoop.
  • Avro: un sistema de serialització de dades.
  • Cassandra: una base de dades multimáster escalable sense punts de fallida.
  • Chukwa: un sistema de col·lecta de dades per a gestionar grans sistemes distribuïts.
  • HBase: una base de dades distribuïda que suporta emmagatzemament de dades estructurades per a garns taules.
  • Hive: una inaestructura de dipòsits de dades.
  • Mahout: una biblioteca d'escaneig de dades i aprenentatge automètic.
  • Pig: un llenguatge de flux de dades d'alt nivell i entorn de programació en paral·lel.
  • Spark: una màquina de càlcul ràpid i general per a les dades Hadoop.
  • Tez: un entorn de programació de flux de dades genèric, construït sobre Hadoop YARN.
  • ZooKeeper: un servei de coordinació d'altes prestacions per a aplicacions distribuïdes.

Bibliografia[modifica]

Programari similar: Google File System.