Enviar comentarios
Usa Apache Spark con HBase en Dataproc
bookmark_border bookmark
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Obsoleto: A partir de la versión 2.1 de Dataproc, ya no puedes usar el componente opcional de HBase.
La versión 1.5 y la versión 2.0 de Dataproc ofrecen una versión beta de HBase sin asistencia. Sin embargo, debido a la naturaleza efímera de los clústeres de Dataproc,
no se recomienda usar HBase.
Objetivos
En este instructivo, se muestra cómo hacer lo siguiente:
Crear un clúster de Dataproc e instalar Apache HBase y Apache ZooKeeper en él
Crea una tabla de HBase con la shell de HBase que se ejecuta en el nodo principal del clúster de Dataproc
Usa Cloud Shell para enviar un trabajo de Spark de Java o PySpark al servicio de Dataproc que escribe datos en la tabla de HBase y, luego, los lee.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios .
Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita .
Antes de comenzar
Si aún no lo hiciste, crea un proyecto de Google Cloud Platform.
Sign in to your Google Cloud account. If you're new to
Google Cloud,
create an account to evaluate how our products perform in
real-world scenarios. New customers also get $300 in free credits to
run, test, and deploy workloads.
In the Google Cloud console, on the project selector page,
select or create a Google Cloud project.
Note : If you don't plan to keep the
resources that you create in this procedure, create a project instead of
selecting an existing project. After you finish these steps, you can
delete the project, removing all resources associated with the project.
Go to project selector
Make sure that billing is enabled for your Google Cloud project .
Enable the Dataproc and Compute Engine APIs.
Enable the APIs
Crea un clúster de Dataproc
Ejecuta el siguiente comando en la terminal de una sesión de Cloud Shell para lo siguiente:
Instala los componentes HBase y ZooKeeper .
Aprovisiona tres nodos de trabajo (se recomiendan de tres a cinco trabajadores para ejecutar el código en este instructivo).
Habilita la Puerta de enlace de componentes .
Usa la versión 2.0 de la imagen
Usa la marca --properties
para agregar la configuración y la biblioteca de HBase a las instrucciones de la ruta de acceso del controlador y el ejecutor de Spark.
gcloud dataproc clusters create cluster-name \
--region=region \
--optional-components=HBASE,ZOOKEEPER \
--num-workers=3 \
--enable-component-gateway \
--image-version=2.0 \
--properties='spark:spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark:spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
Verifica la instalación del conector
Desde la consola de Google Cloud o la terminal de una sesión de Cloud Shell, establece una conexión SSH al instancia principal del clúster de Dataproc .
Verifica la instalación del conector de Apache HBase Spark en el nodo principal:
ls -l /usr/lib/spark/jars | grep hbase-spark
Resultado de muestra:
-rw-r--r-- 1 root root size date time hbase-spark-connector.version .jar
Mantén abierta la terminal de la sesión de SSH para lo siguiente:
Cómo crear una tabla de HBase
(Usuarios de Java): Ejecuta comandos en el nodo principal del clúster para determinar las versiones de los componentes instalados en el clúster.
Escanea tu tabla de HBase después de ejecutar el código .
Crea una tabla de HBase
Ejecuta los comandos que se indican en esta sección en la terminal de la sesión de SSH del nodo maestro que abriste en el paso anterior.
Abre la shell de HBase:
hbase shell
Crea una tabla "my-table" de HBase con una familia de columnas "cf":
create 'my_table','cf'
Para confirmar la creación de la tabla, en la consola de Google Cloud, haz clic en HBase en los vínculos de la puerta de enlace de componentes de la consola de Google Cloud para abrir la IU de Apache HBase. my-table
aparece en la sección Tablas de la página Página principal .
Consulta el código de Spark
Ejecuta el código
Abre una terminal de sesión de Cloud Shell .
Nota: Ejecuta los comandos que se indican en esta sección en una terminal de sesión de Cloud Shell. Cloud Shell tiene preinstaladas las herramientas que requiere este instructivo, incluidas gcloud CLI , git , Apache Maven , Java y Python , además de otras herramientas .
Clona el repositorio GoogleCloudDataproc/cloud-dataproc de GitHub en la terminal de la sesión de Cloud Shell:
git clone https://github.com/GoogleCloudDataproc/cloud-dataproc.git
Cambia al directorio cloud-dataproc/spark-hbase
:
cd cloud-dataproc/spark-hbase
Resultado de muestra:
user-name @cloudshell:~/cloud-dataproc/spark-hbase (project-id )$
Envía el trabajo de Dataproc.
Establece las versiones de los componentes en el archivo pom.xml
.
En la página Versiones de actualización 2.0.x de Dataproc, se enumeran las versiones de los componentes Scala, Spark y HBase instalados con las cuatro versiones secundarias más recientes y las últimas de la imagen 2.0.
Para encontrar la versión secundaria de tu clúster de versión de imagen 2.0, haz clic en el nombre del clúster en la página Clústeres de la consola de Google Cloud para abrir la página Detalles del clúster , en la que se muestra la Versión de imagen del clúster.
Como alternativa, puedes ejecutar los siguientes comandos en una terminal de sesión de SSH desde el nodo principal de tu clúster para determinar las versiones de los componentes:
Verifica la versión de Scala:
scala -version
Verifica la versión de Spark (Ctrl D para salir):
spark-shell
Verifica la versión de HBase:
hbase version
Identifica las dependencias de las versiones de Spark, Scala y HBase en pom.xml
de Maven:
<properties>
<scala.version>scala full version (for example, 2.12.14) </scala.version>
<scala.main.version>scala main version (for example, 2.12) </scala.main.version>
<spark.version>spark version (for example, 3.1.2) </spark.version>
<hbase.client.version>hbase version (for example, 2.2.7) </hbase.client.version>
<hbase-spark.version>1.0.0 (the current Apache HBase Spark Connector version)>
</properties>
Nota: hbase-spark.version
es la versión actual del conector de HBase de Spark.
No cambies este número de versión.
Edita el archivo pom.xml
en el editor de Cloud Shell para insertar los números de versión correctos de Scala, Spark y HBase.
Haz clic en Abrir terminal cuando termines de editar para volver a la línea de comandos de la terminal de Cloud Shell.
cloudshell edit .
Cambia a Java 8 en Cloud Shell. Esta versión de JDK es necesaria para compilar el código (puedes ignorar los mensajes de advertencia de complementos):
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Verifica la instalación de Java 8:
java -version
Resultado de muestra:
openjdk version "1.8..."
Compila el archivo jar
:
mvn clean package
El archivo .jar
se coloca en el subdirectorio /target
(por ejemplo,
target/spark-hbase-1.0-SNAPSHOT.jar
.
Envía el trabajo.
gcloud dataproc jobs submit spark \
--class=hbase.SparkHBaseMain \
--jars=target/filename .jar \
--region=cluster-region \
--cluster=cluster-name
--jars
: Inserta el nombre de tu archivo .jar
después de "target/" y antes de ".jar".
Si no configuraste las instrucciones de clase de HBase del controlador y el ejecutor de Spark cuando creaste tu clúster , debes configurarlas con cada envío de trabajo. Para ello, incluye la siguiente marca ‑‑properties
en el comando de envío de trabajo:
--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
Consulta el resultado de la tabla de HBase en el resultado de la terminal de la sesión de Cloud Shell:
Waiting for job output...
...
+----+----+
| key|name|
+----+----+
|key1| foo|
|key2| bar|
+----+----+
Envía el trabajo.
gcloud dataproc jobs submit pyspark scripts/pyspark-hbase.py \
--region=cluster-region \
--cluster=cluster-name
Si no configuraste las instrucciones de clase de HBase del controlador y el ejecutor de Spark cuando creaste tu clúster , debes configurarlas con cada envío de trabajo. Para ello, incluye la siguiente marca ‑‑properties
en el comando de envío de trabajo:
--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
Consulta el resultado de la tabla de HBase en el resultado de la terminal de la sesión de Cloud Shell:
Waiting for job output...
...
+----+----+
| key|name|
+----+----+
|key1| foo|
|key2| bar|
+----+----+
Escanea la tabla de HBase
Para analizar el contenido de tu tabla de HBase,
ejecuta los siguientes comandos en la terminal de la sesión de SSH
del nodo principal que abriste en
Verifica la instalación del conector :
Abre la shell de HBase:
hbase shell
Escanea "my-table":
scan 'my_table'
Resultado de muestra:
ROW COLUMN+CELL
key1 column=cf:name, timestamp=1647364013561, value=foo
key2 column=cf:name, timestamp=1647364012817, value=bar
2 row(s)
Took 0.5009 seconds
Limpia
Una vez que completes el instructivo, puedes limpiar los recursos que creaste para que dejen de usar la cuota y generar cargos. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.
Para borrar el proyecto, haga lo siguiente:
Precaución : Borrar un proyecto tiene las siguientes consecuencias:
Se borra todo en el proyecto. Si usaste un proyecto existente para las tareas de este documento, cuando lo borres, también se borrará cualquier otro trabajo que hayas realizado en el proyecto.
Se pierden los ID personalizados de proyectos.
Cuando creaste este proyecto, es posible que hayas creado un ID del proyecto personalizado que desees utilizar en el futuro. Para conservar las URL que utilizan el ID del proyecto, como una URL appspot.com
, borra los recursos seleccionados dentro del proyecto en lugar de borrar todo el proyecto.
Si planeas explorar varias infraestructuras, instructivos y guías de inicio rápido la reutilización de proyectos puede ayudarte a evitar exceder los límites de las cuotas del proyecto.
In the Google Cloud console, go to the Manage resources page.
Go to Manage resources
In the project list, select the project that you
want to delete, and then click Delete .
In the dialog, type the project ID, and then click
Shut down to delete the project.
Borra el clúster
Para borrar tu clúster, realiza los siguientes pasos:
gcloud dataproc clusters delete cluster-name \
--region=${REGION}
Enviar comentarios
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons , y los ejemplos de código están sujetos a la licencia Apache 2.0 . Para obtener más información, consulta las políticas del sitio de Google Developers . Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-02-05 (UTC)
¿Quieres brindar más información?
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-02-05 (UTC)"],[],[]]