tutorial instalar funciona example español data como big aprender java hadoop apache-zookeeper

java - funciona - instalar big data



¿Por qué necesitamos ZooKeeper en la pila de Hadoop? (3)

De la página de documentación del zookeeper :

ZooKeeper es un servicio centralizado para mantener la información de configuración, nombrar, proporcionar sincronización distribuida y proporcionar servicios grupales. Todos estos tipos de servicios son utilizados de una forma u otra por aplicaciones distribuidas.

Cada vez que se implementan hay mucho trabajo para resolver los errores y las condiciones de carrera que son inevitables. Debido a la dificultad de implementar este tipo de servicios, las aplicaciones inicialmente suelen escatimar en ellos, lo que los hace frágiles en presencia de cambios y difíciles de gestionar. Incluso cuando se realiza correctamente, las diferentes implementaciones de estos servicios conducen a la complejidad de la administración cuando se implementan las aplicaciones.

Desde la página de documentación de hadoop :

El proyecto Apache ™ Hadoop® desarrolla software de código abierto para una computación distribuida confiable y escalable.

La biblioteca de software Apache Hadoop es un marco que permite el procesamiento distribuido de grandes conjuntos de datos en clústeres de computadoras utilizando modelos de programación simples

En cuanto a tu consulta:

¿Por qué necesitamos ZooKeeper en Hadoop Stack?

El factor vinculante es el procesamiento distribuido y la alta disponibilidad.

por ejemplo, el proceso de conmutación por error de Hadoop Namenode.

La alta disponibilidad de Hadoop está diseñada en torno a Active Namenode & Standby Namenode para el proceso de conmutación por error. En cualquier punto del tiempo, no deberías tener dos maestros (Namenodes activos) al mismo tiempo.

Desde el enlace de documentación de Apache en HDFSHighAvailabilityWithQJM :

Es vital para el correcto funcionamiento de un clúster HA que solo uno de los NameNodes esté activo a la vez. De lo contrario, el estado del espacio de nombres divergiría rápidamente entre los dos, arriesgando la pérdida de datos u otros resultados incorrectos. Para garantizar esta propiedad y evitar el llamado "escenario de cerebro dividido", los JournalNodes solo permitirán que un solo NameNode sea escritor a la vez.

Durante una conmutación por error, el NameNode que se activará simplemente asumirá la función de escribir en los JournalNodes, lo que evitará que el otro NameNode continúe en el estado activo, permitiendo que el nuevo activo proceda de manera segura con failover.

Zookeeper se ha utilizado para evitar el escenario Split - brain. Puede encontrar el rol de Zookeeper en la siguiente pregunta:

¿Cómo funciona el proceso de failover de Hadoop Namenode?

Soy nuevo en Hadoop / ZooKeeper. No puedo entender el propósito de usar ZooKeeper con Hadoop, ¿está ZooKeeper escribiendo datos en Hadoop? Si no, ¿por qué lo hacemos usamos ZooKeeper con Hadoop?


Hadoop 1.x no usa Zookeeper. HBase usa el guardián del zoológico incluso en las instalaciones de Hadoop 1.x.

Hadoop adoptó Zookeeper también comenzando con la versión 2.0.

El objetivo de Zookeeper es la gestión de clusters. Esto encaja con la filosofía general de * nix de usar componentes especializados más pequeños, por lo que los componentes de Hadoop que quieran capacidades de agrupamiento dependen de Zookeeper para eso en lugar de desarrollar los propios.

Zookeeper es un almacenamiento distribuido que proporciona las siguientes garantías (copiadas de la página de descripción general de Zookeeper ):

  • Coherencia secuencial: las actualizaciones de un cliente se aplicarán en el orden en que se enviaron.
  • Atomicity: las actualizaciones tienen éxito o fallan. Sin resultados parciales
  • Imagen de sistema único: un cliente verá la misma vista del servicio independientemente del servidor al que se conecte.
  • Confiabilidad: una vez que se aplica una actualización, persistirá a partir de ese momento hasta que un cliente sobrescriba la actualización.
  • Puntualidad: la vista de los clientes del sistema está garantizada para estar actualizada dentro de un límite de tiempo determinado.

Puede usarlos para implementar diferentes " recipes " que se requieren para la administración de clúster, como bloqueos, elección de líder, etc.

Si va a utilizar ZooKeeper usted mismo, le recomiendo que eche un vistazo a Curator de Netflix, que lo hace más fácil de usar (por ejemplo, implementan algunas recetas de la caja)


Zookeeper resuelve el problema de la coordinación distribuida confiable, y hadoop es un sistema distribuido, ¿verdad?

Existe un excelente Paxos Algorithm en papel que puedes leer sobre este tema.