从我们集群内的其他azure hdinsight集群访问配置单元表

628mspwn  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(351)

在我们的设置中有一个hdinsight集群,我们将数据存储在配置单元表中(数据作为adl中的外部表和外部元存储中的元数据,并使用azure集群中的配置单元服务进行访问)。与其他azure群集(不一定在同一订阅中)共享此数据的最佳方式是什么?
azure有服务主体的概念,因此我们需要设置acl,以允许其他集群的服务主体访问与我们共享的配置单元表对应的adls文件夹。另外,我们集群的hiveserver2url如何被其他azure示例用作jdbc连接,以便它们可以查询数据?我们应该为他们提供什么样的集群登录才能使用我们的hiveserver2查询我们的hive表中的数据?
我知道正确的方法是使用azureesp服务,但这显然是一个昂贵的选择。
让他们只访问adls文件夹似乎也是不正确的,因为元数据不用于访问数据。。。

ne5o7dgx

ne5o7dgx1#

所描述的场景可以通过共享元存储来实现。因为您已经有了一个外部元存储,所以也可以将它用于其他集群。前提条件是访问此元存储的集群的配置单元元存储版本相同。
您还可以更改群集创建模板中的核心站点设置,使其具有相同的文件系统结构(如果您不使用完全限定的存储帐户名):

"core-site": {
    "fs.defaultFS": "adl://home",
    "dfs.adls.home.hostname": "<your-datalake-store>.azuredatalakestore.net",
    "dfs.adls.home.mountpoint": "/<your-adl-home-mountpoint-dir>",...
     },

在spark中,这将通过以下方式完成:

spark.conf.set("dfs.adls.home.hostname", "<your-datalake-store>.azuredatalakestore.net")
spark.conf.set("dfs.adls.home.mountpoint", "/<your-adl-home-mountpoint-dir>")

另请参阅以下博客文章。
另外,请检查以下关于如何从pyspark(也可以从“外部”)访问hdinsight的答案。

相关问题