在GCP中基于Dataproc运行Cucumber BDD进行Spark作业测试
迁移本地BDD测试到GCP Dataproc集群的实现流程
以下是对应你本地Hadoop集群BDD测试流程的GCP Dataproc落地步骤:
一、集群配置与环境准备
- 创建Dataproc集群时,勾选启用Hive和HBase组件(Dataproc默认集成这些服务,无需额外安装)
- 配置集群服务账号:赋予访问GCS(存储作业包、测试数据)、Hive Metastore、HBase的权限;同时在VPC防火墙中开放端口:10000(Hive JDBC)、16010(HBase Thrift),允许测试机器的IP访问
二、测试数据插入(对应本地Hive/HBase插数步骤)
1. Hive表数据准备
- 方式一:通过JDBC连接执行插入SQL
INSERT INTO test_db.source_table VALUES (1, 'sample_data', '2024-01-01'); - 方式二:批量导入本地数据:先把数据上传到GCS,再用Hive加载
# 上传本地数据到GCS gsutil cp local_data.csv gs://your-bucket/test-data/ # Hive加载命令 LOAD DATA INPATH 'gs://your-bucket/test-data/local_data.csv' INTO TABLE test_db.source_table;
2. HBase表数据准备
- 通过gcloud命令提交HBase Shell操作:
gcloud dataproc jobs submit hbase --cluster=your-cluster-name \ --command="put 'hbase_source_table', 'row_key_1', 'cf:column1', 'value1'" - 也可以通过HBase Thrift JDBC连接执行插入逻辑,连接地址为
jdbc:hbase://<集群主节点外网IP>:16010/
三、运行Spark作业
- 将本地Spark作业打包成jar包,上传到GCS路径(如
gs://your-bucket/spark-jobs/your-job.jar) - 用gcloud命令提交作业到Dataproc集群:
gcloud dataproc jobs submit spark --cluster=your-cluster-name \ --jar=gs://your-bucket/spark-jobs/your-job.jar \ --args="--input-hive-table=test_db.source_table,--input-hbase-table=hbase_source_table,--output-table=test_db.target_table" - 若作业依赖第三方库,添加
--jars gs://your-bucket/libs/dependency1.jar,gs://your-bucket/libs/dependency2.jar参数
四、目标表数据验证
1. Hive目标表验证
- 通过JDBC连接Dataproc Hive执行查询:
JDBC连接URL格式:SELECT COUNT(*), MAX(column1) FROM test_db.target_table;jdbc:hive2://<集群主节点外网IP>:10000/test_db;transportMode=http;httpPath=cliservice - 也可以直接提交Hive查询作业验证:
gcloud dataproc jobs submit hive --cluster=your-cluster-name --execute="SELECT * FROM test_db.target_table LIMIT 10;"
2. HBase目标表验证
- 用gcloud命令查询HBase数据:
gcloud dataproc jobs submit hbase --cluster=your-cluster-name \ --command="scan 'hbase_target_table', {LIMIT => 5}" - 或通过HBase JDBC连接执行查询逻辑
五、BDD测试框架适配
- 保留原有BDD测试的业务逻辑,仅修改JDBC连接配置:
- 更新Hive、HBase的JDBC URL为Dataproc集群的对应地址
- 确保测试机器能访问Dataproc集群的开放端口,若测试机器在GCP外,需配置防火墙规则允许对应IP访问
内容的提问来源于stack exchange,提问作者Raghu K
相关产品推荐
相关产品推荐

