¿Cómo se hace una base de datos que está ‘en’ el entorno Hadoop?

Hay varias cosas que hacen que una base de datos “en” el ecosistema de Hadoop.

  1. Integración con HDFS para carga de datos. Muchas bases de datos admiten la carga desde HDFS ahora
  2. Integración con HDFS para almacenamiento de datos. Es más fácil para las bases de datos analíticas y más difícil para las bases de datos transaccionales porque necesita mantener un registro de transacciones. HBase sería uno. Como nota al margen, los árboles LSM son una mejor estructura de datos para eso en comparación con los árboles B, que requieren más acceso aleatorio para su mantenimiento.
  3. Integración con marcos de cómputo de Hadoop como map / reduce o Hive. Por ejemplo, Polybase de SQL Server le permite realizar consultas transparentes en Hadoop.
  4. Integración con planificadores Hadoop como Yarn y Mesos.
  5. Integración con herramientas Hadoop, como Scoop y Kafka.

Cuantas más casillas de verificación de estos 5 toque, más “en” estará la base de datos. MemSQL puntúa 3/5.

Michael Daconta tiene razón sobre los enfoques establecidos. Hay otros enfoques más nuevos que también son interesantes de explorar, como este uso de Neo4j con Apache Spark y GraphX ​​a través de mensajes de Mazerunner para hacer cosas como PageRank en grandes conjuntos de datos. Los resultados se vuelven a escribir en HDFS: Uso de Apache Spark y Neo4j para Big Data Graph Analytics

Splice Machine está diseñada para ser un RDBMS sobre HBase y HDFS: http://www.splicemachine.com/pro

Hay muchos otros ejemplos como estos …

Por cierto, debe preguntarse por qué desea mantener los datos en los archivos hdf. Para muchos otros casos de uso, puede usar muchas otras tecnologías. Pero si hdfs es lo que desea, Cloudera Impala se está acercando a ser una buena herramienta sql sobre HDFS, pero requiere muchos recursos de hardware. Otro proyecto de código abierto es Apache Phoenix que trata a Hbase como una base de datos RDBMS (el mismo concepto que la máquina de empalme que mencionó Alan)

Crearía sus datos en HBase o Hive. Hive es similar a SQL, por lo que esa es la forma en que crearía tablas relacionales. Lo importante es que esto le permite crear datos en HDFS que luego son accesibles para el clúster Hadoop y los trabajos MapReduce. ¡Los mejores deseos!