本教程将介绍如何执行以下操作:
在本文档中,您将使用 Google Cloud 的以下收费组件:
如果您尚未创建 Google Cloud Platform 项目,请首先创建该项目。
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
Enable the Dataproc and Compute Engine APIs.
在 Cloud Shell 会话终端中运行以下命令,以执行以下操作:
gcloud dataproc clusters createcluster-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/*'
在 Google Cloud 控制台或 Cloud Shell 会话终端中,通过 SSH 连接到 Dataproc 集群主服务器。
验证是否已在主节点上安装 Apache HBase Spark 连接器:
ls -l /usr/lib/spark/jars | grep hbase-spark
-rw-r--r-- 1 root rootsize date time hbase-spark-connector.version .jar
请让 SSH 会话终端保持打开状态,以便:
在您在上一步中打开的主节点 SSH 会话终端中,运行本部分列出的命令。
打开 HBase shell:
hbase shell
创建一个包含“cf”列族的 HBase“my-table”:
create 'my_table','cf'
my-table
列在首页的表部分中。打开 Cloud Shell 会话终端。
将 GitHub GoogleCloudDataproc/cloud-dataproc 代码库克隆到您的 Cloud Shell 会话终端:
git clone https://github.com/GoogleCloudDataproc/cloud-dataproc.git
切换到 cloud-dataproc/spark-hbase
目录:
cd cloud-dataproc/spark-hbase
user-name @cloudshell:~/cloud-dataproc/spark-hbase (project-id )$
提交 Dataproc 作业。
pom.xml
文件中设置组件版本。
scala -version
spark-shell
hbase version
pom.xml
中确定 Spark、Scala 和 HBase 版本依赖项:
<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>
hbase-spark.version
是当前的 Spark HBase 连接器版本;请勿更改此版本号。pom.xml
文件,以插入正确的 Scala、Spark 和 HBase 版本号。编辑完成后,点击打开终端以返回 Cloud Shell 终端命令行。cloudshell edit .
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
java -version
openjdk version "1.8..."
jar
文件:
mvn clean package
.jar
文件放在 /target
子目录中(例如 target/spark-hbase-1.0-SNAPSHOT.jar
)。提交作业。
gcloud dataproc jobs submit spark \ --class=hbase.SparkHBaseMain \ --jars=target/filename .jar \ --region=cluster-region \ --cluster=cluster-name
--jars
:将 .jar
文件的名称插入“target/”和“.jar”之间。‑‑properties
标志:
--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
在 Cloud Shell 会话终端输出中查看 HBase 表输出:
Waiting for job output... ... +----+----+ | key|name| +----+----+ |key1| foo| |key2| bar| +----+----+
提交作业。
gcloud dataproc jobs submit pyspark scripts/pyspark-hbase.py \ --region=cluster-region \ --cluster=cluster-name
‑‑properties
标志:
--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
在 Cloud Shell 会话终端输出中查看 HBase 表输出:
Waiting for job output... ... +----+----+ | key|name| +----+----+ |key1| foo| |key2| bar| +----+----+
您可以在验证连接器安装中打开的主节点 SSH 会话终端中,运行以下命令来扫描 HBase 表的内容:
hbase shell
scan 'my_table'
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
完成本教程后,您可以清理您创建的资源,让它们停止使用配额,以免产生费用。以下部分介绍如何删除或关闭这些资源。
为了避免产生费用,最简单的方法是删除您为本教程创建的项目。
如需删除项目,请执行以下操作:
gcloud dataproc clusters deletecluster-name \ --region=${REGION}
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-02-01。