¿Cómo exportar datos de HBase a un archivo o mysql?
Utilice el método Put en la API de HBase
Utilice la herramienta de carga por lotes de HBase
Utilice un MapReduce personalizado job
Usar el método Put en la API de HBase es el método más directo. Cómo usarlo también es fácil de dominar. Pero en la mayoría de los casos, este no es siempre el enfoque más eficaz. Esto es especialmente cierto cuando es necesario cargar grandes cantidades de datos en HBase dentro de un tiempo específico. La cantidad de datos que deben procesarse es generalmente grande, por lo que probablemente elegimos HBase sobre otras bases de datos. Antes de comenzar su proyecto, debe considerar cómo mover todos sus datos a HBase; de lo contrario, puede enfrentar serios problemas de rendimiento más adelante.
HBase tiene una función llamada carga masiva que admite la carga eficiente de cantidades masivas de datos en HBase. La carga masiva se realiza a través de un trabajo de MapReduce que genera los archivos internos en formato HBase HFile directamente en una tabla de datos HBase especial y luego carga los archivos de datos directamente en el clúster en ejecución. Luego, los archivos de datos se cargan directamente en el clúster en ejecución. La forma más sencilla de utilizar la función de carga masiva es utilizar la utilidad importtsv. importtsv es una herramienta integrada para cargar contenido de archivos TSV directamente en HBase. Escribe los datos del archivo TSV directamente en una tabla HBase o en un archivo de datos en el propio formato de HBase ejecutando un trabajo MapReduce.
Aunque la herramienta importtsv es útil cuando necesita importar datos de texto a HBase, en algunos casos (como importar datos en otros formatos), necesita generar los datos mediante programación y MapReduce es adecuado para procesar. grandes cantidades de datos. La forma más eficiente de utilizar los datos. Esta es probablemente también la forma más factible de cargar cantidades masivas de datos en HBase. Por supuesto, podemos usar MapReduce para importar datos a HBase, pero conjuntos de datos masivos también pueden hacer que los trabajos de MapReduce sean pesados. Si no se maneja adecuadamente, puede resultar en un rendimiento muy bajo para los trabajos de MapReduce.
A menos que podamos generar los archivos de datos internos de HBase y cargarlos directamente, la combinación de datos en HBase es una tarea de escritura que se realiza con frecuencia. Si el proceso de fusión no está configurado correctamente, esto puede provocar que las operaciones de escritura se bloqueen con frecuencia, aunque las escrituras de HBase siempre son rápidas. Otro problema que puede surgir con las tareas de escritura intensa es que los datos se escriben en el mismo servidor de región, lo que suele ocurrir cuando se importan grandes cantidades de datos a un HBase recién creado. Una vez que los datos se centralizan en el mismo servidor, el clúster se desequilibra y las velocidades de escritura se reducen significativamente. Este artículo abordará estas cuestiones. Comenzaremos con la simple tarea de importar datos de MySQL a HBase usando el método Put de API, luego cubriremos cómo importar archivos de datos TSV a HBase usando importtsv y carga por lotes, y también proporcionaremos un ejemplo de MapReduce que muestra cómo usar Otros formatos de archivos de datos para importar datos. Todo lo anterior incluye escribir datos directamente en HBase, así como escribir archivos de tipo HFile directamente en HDFS. La última parte de este artículo explica cómo construir el clúster antes de importar los datos a HBase. El código de este artículo está escrito en Java y asumimos que ya tiene conocimientos básicos de Java, por lo que este artículo omitirá cómo compilar y empaquetar el código de muestra de Java, pero anotaremos el código fuente de muestra.