tutorial spark hadoop

spark - hadoop wikipedia



¿Papeles HBase y ZooKeeper en Hadoop? (2)

He instalado el clúster de un solo nodo de Hadoop en mi máquina Ubuntu y puedo ejecutar NameNode, datanode, etc. Ahora necesito instalar HBase y Zookeeper. Pero realmente no sé lo que son. Chicos, cualquiera podría darme una breve descripción de esas herramientas.

Gracias


En primer lugar, le recomiendo encarecidamente que visite las páginas oficiales de estos proyectos. Ve aquí por HBase y here por Zookeeper.

HBase es un almacén de datos NoSQL que se ejecuta sobre su clúster Hadoop existente (HDFS). Le proporciona capacidades como lecturas / escrituras aleatorias en tiempo real , de las que HDFS carece de FS. Dado que es un almacén de datos NoSQL, no sigue las convenciones y terminologías de SQL. HBase proporciona un buen conjunto de API (incluye JAVA y Thrift). Junto con este, HBase también proporciona una integración perfecta con el marco MapReduce. Pero, junto con todas estas ventajas de HBase, debe tener en cuenta que la lectura y escritura aleatorias es rápida pero siempre tiene una sobrecarga adicional. Así que piensa bien antes de tomar una decisión.

ZooKeeper es un servicio de coordinación de alto rendimiento para aplicaciones distribuidas (como HBase). Expone servicios comunes como nombres, administración de configuración, sincronización y servicios grupales , en una interfaz simple para que no tenga que escribirlos desde cero. Puede usarlo de manera estándar para implementar protocolos de consenso, administración de grupos, elección de líderes y presencia. Y usted puede desarrollarlo para sus propias necesidades específicas.

HBase se basa completamente en Zookeeper. HBase le ofrece la opción de usar su Zookeeper integrado que se iniciará cada vez que inicie HBAse. Pero no es bueno si está trabajando en un clúster de producción. En tales situaciones, siempre es bueno tener un clúster Zookeeper dedicado e integrarlo con su clúster HBase.

Nota: siempre debe tener un número impar de nodos en su quórum ZK.

HTH


Una visión general :

Zookeeper : En resumen, zookeeper es una herramienta de configuración y administración de aplicaciones distribuidas (clúster), y sale de forma independiente de HBase . De los documentos:

ZooKeeper es un servicio centralizado para mantener la información de configuración, asignar nombres, proporcionar sincronización distribuida y brindar servicios grupales. Todos estos tipos de servicios son utilizados de una forma u otra por las aplicaciones distribuidas. Cada vez que se implementan, hay un montón de trabajo que consiste en solucionar los errores y las condiciones de carrera que son inevitables. Debido a la dificultad de implementar este tipo de servicios, al principio las aplicaciones generalmente los escatiman, lo que los hace frágiles en presencia de cambios y difíciles de administrar. Incluso cuando se realizan correctamente, las diferentes implementaciones de estos servicios conducen a la complejidad de la administración cuando se implementan las aplicaciones.

HBase : el almacén de datos NoSQL encima del HDFS (puede usar un sistema de archivos simple, pero no garantiza la durabilidad de los datos). HBase contiene dos servicios primarios:

  • Servidor maestro: el servidor maestro (HMaster) coordina el clúster y realiza operaciones administrativas, como la asignación de regiones y el equilibrio de las cargas.
  • Servidores de la región - Los servidores de la región hacen el trabajo real. Cada servidor de región maneja un subconjunto de los datos de cada tabla. Los clientes hablan con los servidores de la región para acceder a los datos en HBase.

La conexión entre HBase y Zookeeper :

Un HBase distribuido se basa completamente en Zookeeper (para la configuración y administración del clúster). En Apache HBase, ZooKeeper coordina, comunica y comparte el estado entre los Maestros y los Servidores de la Región. HBase tiene una política de diseño de usar ZooKeeper solo para datos transitorios (es decir, para coordinación y comunicación de estado). Por lo tanto, si se eliminan los datos de ZooKeeper de HBase, solo se verán afectadas las operaciones transitorias; los datos se pueden seguir escribiendo y leyendo a / desde HBase.

Una vez que haya iniciado HBase, puede verificar los procesos que ha comenzado a usar el comando jps :

$ jps

el comando listará todos los procesos java en la máquina (HBase en sí es una aplicación Java) - el resultado probable (en caso de una configuración HBase autónoma simple) debe ser:

62019 Jps 61098 HMaster 61233 HRegionServer 61003 HQuorumPeer

Técnicamente hablando : de forma predeterminada, HBase administra el propio zookeeper, es decir, inicia y detiene el quórum del zookeeper (el grupo de nodos del zookeeper) cuando iniciamos y paramos HBase - para verificar la configuración del archivo conf/hbase-evn.sh (en su directorio hbase ) debe haber una línea:

export HBASE_MANAGES_ZK=true

Una vez que hayamos establecido, todo lo que tenemos que hacer es configurar las siguientes directivas en conf/hbase-site.xml - desde docs :

<configuration> ... <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> <description> The port at which the clients will connect. </description> </property> <property> <name>hbase.zookeeper.quorum</name> <value>rs1.example.com,rs2.example.com,rs3.example.com,rs4.example.com,rs5.example.com</value> <description>Comma separated list of servers in the ZooKeeper Quorum. For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com". By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh this is the list of servers which we will start/stop ZooKeeper on. </description> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/zookeeper</value> <description>Property from ZooKeeper''s config zoo.cfg. The directory where the snapshot is stored. </description> </property> ... </configuration>