【问题标题】:Accessing Hive tables from other Azure HDinsight cluster from within our cluster从我们的集群中访问来自其他 Azure HDinsight 集群的 Hive 表
【发布时间】:2018-11-27 14:47:26
【问题描述】:

我们的设置中有一个 HDInsight 集群,我们将数据存储在 Hive 表中(数据位于 ADLS 中的外部表中,元数据位于外部元存储中,并使用 Azure 集群中的 Hive 服务进行访问)。 与其他 Azure 集群(不一定在同一个订阅中)共享此数据的最佳方式是什么?

Azure 具有服务主体的概念,因此我们需要设置 acls 以允许其他集群的服务主体访问与我们共享的配置单元表对应的 ADLS 文件夹。另外,我们集群的hiveserver2 url如何被其他Azure实例用作jdbc连接,以便他们可以查询数据?我们应该为他们提供什么集群登录才能使用我们的 HiveServer2 来查询 Hive 表中的数据?

我知道正确的做法是使用 Azure ESP 服务,但这显然是一个代价高昂的选择。

只让他们访问 ADLS 文件夹似乎也不正确,因为元数据不会用于访问数据...

【问题讨论】:

    标签: azure hive azure-hdinsight


    【解决方案1】:

    所描述的场景可以通过共享元存储来实现。由于您已经有一个外部元存储,因此您也可以将它用于其他集群。前提是访问此 Metastore 的集群的 Hive-Metastore 版本相同。

    您还可以更改集群创建模板中的核心站点设置,以具有相同的文件系统结构(如果您不使用完全限定的存储帐户名称):

    "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>")
    

    另请参阅以下blog-post

    还检查以下answer 如何从 pyspark(也从“外部”)访问 HDInsight。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 2020-04-22
      相关资源
      最近更新 更多