在齐柏林飞艇 0.71 上运行的 Dataproc Spark 看不到在齐柏林飞艇 0.62 中创建的配置单元表



我曾经使用Datapoc(图像版本1.1(和Zeppelin 0.62来创建存储在Google Cloud Bucket中的Hive表。现在我创建了另一个 Dataproc 版本 1.2,它通过以下 https://zeppelin.apache.org/docs/0.7.1/interpreter/spark.html 使用 Zeppelin 0.71。一旦每个外部组件(MySQL 服务器上的 Hive 元存储,齐柏林飞艇(完全初始化,我

使用
%sql 
show tables

但是没有返回从以前版本的 Dataproc 创建的表。我重新检查了 zeppelin.sh 和 cloud-sql-proxy.sh 的初始化脚本,它们是正确的。然后我重新检查了hive.metastore.warehouse.dir的值,它与以前版本的 Dataproc 中使用的值相匹配,但这次 Spark 2.2.0 改为spark.sql.warehouse.dir(请参阅 https://issues.apache.org/jira/browse/SPARK-15034(。

然后,我创建了一个新的配置单元表,table_zeppelin,内容已正确存储在存储桶中。当我通过show tables进行验证时,表格按预期显示。但是一旦我重新启动齐柏林飞艇并重新运行show tables我就什么也没回来了。奇怪。。因为table_zeppelin的内容已经在桶里了。一旦我验证了存储 hive 元存储的 MySQL 实例中的表 TBLS,我就没有看到table_zeppelin。我想蜂巢元存储有问题。

令人惊讶的是,当我创建另一个蜂巢表时,table_spark但这次通过火花壳,一切都按预期工作。当我运行显示表时,我得到了table_spark和在以前的 Dataproc 版本中创建的所有表,但不是以前通过齐柏林飞艇 0.71 创建的table_zeppelin表。table_spark也在MySQL实例的表TBLS中。我很确定在齐柏林飞艇 0.71 中设置 hive 元存储有问题,因为齐柏林飞艇无法向元存储读取/写入任何内容。我可以确认SPARK_HOME在zeppelin-env.sh中设置正确指向 Dataproc Spark。

这是我的群集创建脚本:

gcloud dataproc --region us-west1 clusters create coco-cluster --bucket rcom_dataproc_dev --zone us-west1-a --master-machine-type n1-highmem-4 --master-boot-disk-size 500 --num-workers 3 --worker-machine-type n1-highcpu-8 --worker-boot-disk-size 500 --image-version 1.2 --project true-dmp --initialization-actions 'gs://dmp_recommendation_dev/env_dependencies/cloud-sql-proxy.sh','gs://dmp_recommendation_dev/env_dependencies/zeppelin.sh' --scopes cloud-platform --properties hive:hive.metastore.warehouse.dir=gs://rcom_dataproc_dev/hive-warehouse --metadata "hive-metastore-instance=true-dmp:asia-northeast1:rcom-metastore-sql,hive-metastore-db=hive_metastore_dev"

注意 存储配置单元元存储的 MySQL 实例位于亚洲,但群集位于美国。我不认为这是造成这种情况的原因。

所以我的问题是我如何设置 Zeppelin 0.71 来识别 Google Cloud SQL 实例中的 Hive Metastore?

谢谢
皮拉纳特·

感谢您的详细重现 - 这已在(未发布(齐柏林飞艇 0.8:https://issues.apache.org/jira/browse/ZEPPELIN-2377 中修复。

我们会将此修复程序反向移植到我们的软件包中,并在接下来的几周内发布时编辑这篇文章。

同时,命令行上的 spark-shell/spark-sql/spark-submit 和通过 Dataproc API 的 spark/spark-sql 应该仍然可以工作。

最新更新