2011-03-24 18 views
15

Actualmente estoy evaluando HBase como almacén de datos, pero una pregunta quedó sin respuesta: HBase almacena muchas copias del mismo objeto en muchos nodos (también conocido como replicación). Como HBase presenta la llamada fuerte consistencia (en contraste con eventual consistente) garantiza que cada réplica devuelve el mismo valor si se lee.HBase: ¿Cómo funciona la replicación?

Como he entendido el concepto HBase, cuando se leen valores, primero se consulta al maestro HBase para que (debe haber más de un) RegionServer proporcionando los datos. Entonces puedo emitir solicitudes de lectura y escritura sin la invención del maestro. ¿Cómo puede funcionar la replicación?

  • ¿Cómo proporciona HBase la concisión?
  • ¿Cómo funcionan internamente las operaciones de escritura?
  • Escriba el bloque de operaciones hasta que se escriban todas las réplicas (=> replicación sincrónica). En caso afirmativo, ¿quién gestiona esta transferencia?
  • ¿Cómo entra HDFS en el juego?

que ya han leído el BigTable -papel y buscado la documentación, pero no encontró más información sobre la arquitectura de HBase.

Gracias!

Respuesta

16

hbase no realiza ninguna replicación en la forma en que está pensando. Está construido sobre HDFS, que proporciona replicación para los bloques de datos que componen las tablas hbase. Sin embargo, solo un servidor de regiones sirve o escribe datos para una fila determinada.

Por lo general, los servidores de regiones se colocan con nodos de datos. Todas las escrituras de datos en HDFS van primero al nodo local, si es posible, a otro nodo en el mismo bastidor y a otro nodo en un bastidor diferente (dado un factor de replicación de 3 en HDFS). Por lo tanto, un servidor regional eventualmente terminará con todos sus datos servidos desde el servidor local.

En cuanto al bloqueo: el único bloque es hasta que el WAL (registro de escritura anticipada) se vacíe en el disco. Esto garantiza que no se pierdan datos, ya que el registro siempre se puede reproducir. Tenga en cuenta que la versión anterior de hbase no funcionaba así porque HDFS no admitía una operación de adición duradera hasta hace poco. Estamos en un estado extraño por el momento ya que no hay una versión oficial de Apache de Hadoop que admita tanto anexos como HBase. Mientras tanto, puedes aplicar el parche para agregarlo tú mismo o usar la distribución de Cloudera (recomendado).

HBase tiene una función de replicación relacionada que le permitirá replicar datos de un clúster a otro.

+0

David, me encontré con estos comandos, http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_bdr_hbase_replication.html => En el maestro: "crear" t1 ', {NAME =>' f1 ', REPLICATION_SCOPE => 1} " => En el esclavo: " create' t1 ', {NAME =>' f1 ', KEEP_DELETED_CELLS =>' true '} " So esto significa que HBase puede controlar la Replicación de sus datos? –

+1

La replicación de HBase a la que se vinculó hace referencia a la replicación de datos en centros de datos, no a través de nodos en un clúster – David