在我们的设置中有一个hdinsight集群,我们将数据存储在配置单元表中(数据作为adl中的外部表和外部元存储中的元数据,并使用azure集群中的配置单元服务进行访问)。与其他azure群集(不一定在同一订阅中)共享此数据的最佳方式是什么?
azure有服务主体的概念,因此我们需要设置acl,以允许其他集群的服务主体访问与我们共享的配置单元表对应的adls文件夹。另外,我们集群的hiveserver2url如何被其他azure示例用作jdbc连接,以便它们可以查询数据?我们应该为他们提供什么样的集群登录才能使用我们的hiveserver2查询我们的hive表中的数据?
我知道正确的方法是使用azureesp服务,但这显然是一个昂贵的选择。
让他们只访问adls文件夹似乎也是不正确的,因为元数据不用于访问数据。。。
1条答案
按热度按时间ne5o7dgx1#
所描述的场景可以通过共享元存储来实现。因为您已经有了一个外部元存储,所以也可以将它用于其他集群。前提条件是访问此元存储的集群的配置单元元存储版本相同。
您还可以更改群集创建模板中的核心站点设置,使其具有相同的文件系统结构(如果您不使用完全限定的存储帐户名):
在spark中,这将通过以下方式完成:
另请参阅以下博客文章。
另外,请检查以下关于如何从pyspark(也可以从“外部”)访问hdinsight的答案。