日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

EMR Serverless Spark連接外部Hive Metastore

EMR Serverless Spark支持連接外部Hive Metastore服務,您可以便捷地訪問存儲在Hive Metastore中的數據。本文將介紹如何在EMR Serverless Spark中配置和連接外部Hive Metastore服務,以便在工作環境中高效管理和利用數據資源。

前提條件

已創建工作空間和SQL會話,詳情請參見創建工作空間管理SQL會話

使用限制

  • 使用Hive Metastore需要您重啟工作空間中現有的會話。

  • 設置Hive Metastore為默認Catalog后,您的工作流任務將默認依賴于Hive Metastore。

操作流程

步驟一:準備Hive Metastore服務

說明

本文采用EMR on ECS的Hive Metastore作為外部服務,如果您的VPC內已經有Hive Metastore服務,則請忽略該步驟。

  1. 在EMR on ECS頁面創建包含Hive服務,元數據內置MySQL的DataLake集群,詳情請參見創建集群

  2. 使用SSH方式登錄集群的Master節點,詳情請參見登錄集群

  3. 執行以下命令,進入Hive命令行。

    hive
  4. 執行以下命令,創建一個指向OSS的表(dw_users)并寫入數據。

    CREATE TABLE `dw_users`(
      `name` string)
    LOCATION
      'oss://<yourBucket>/path/to/file';
    
    INSERT INTO dw_users select 'Bob';

步驟二:新增網絡連接

  1. 進入網絡連接頁面。

    1. 登錄E-MapReduce控制臺

    2. 在左側導航欄,選擇EMR Serverless > Spark

    3. Spark頁面,單擊目標工作空間名稱。

    4. EMR Serverless Spark頁面,單擊左側導航欄中的網絡連接

  2. 網絡連接頁面,單擊新增網絡連接

  3. 新增網絡連接對話框中,配置以下信息,單擊確定

    參數

    說明

    連接名稱

    輸入新增連接的名稱。

    專有網絡

    選擇與EMR集群相同的專有網絡。

    交換機

    選擇與EMR集群部署在同一專有網絡下的相同交換機。

    狀態顯示為已成功時,表示新增網絡連接成功。

    image

步驟三:開放Hive Metastore服務端口

  1. 獲取已創建網絡連接中指定交換機的網段。

    您可以登錄專有網絡管理控制臺,在交換機頁面獲取交換機的網段。

    image

  2. 添加安全組規則。

    1. 登錄EMR on ECS控制臺

    2. EMR on ECS頁面,單擊目標集群的集群ID。

    3. 基礎信息頁面,單擊集群安全組后面的鏈接。

    4. 安全組頁面,單擊手動添加,填寫端口范圍授權對象,然后單擊保存

      參數

      說明

      端口范圍

      填寫9083端口。

      授權對象

      填寫前一步驟中獲取的指定交換機的網段。

      重要

      為防止被外部的用戶攻擊導致安全問題,授權對象禁止填寫為0.0.0.0/0

步驟四:連接Hive Metastore

  1. EMR Serverless Spark頁面,單擊左側導航欄中的數據目錄

  2. 數據目錄頁面,單擊添加數據目錄

  3. 在彈出的對話框中,單擊外部Hive Metastore,配置以下信息,單擊確定

    image

    參數

    說明

    網絡連接

    選擇步驟二中新增的網絡連接。

    Metastore服務地址

    Hive MetaStore的URI。格式為thrift://<Hive metastore的IP地址>:9083

    <Hive metastore的IP地址>為HMS服務的內網IP地址。本示例為EMR集群Master節點的內網IP,您可以在EMR集群的節點管理頁面中查看。

步驟五:使用Hive Metastore

  1. 數據目錄頁面,單擊hive_metastore操作列的設為默認,設置hive_metastore為工作空間的默認數據目錄。

    image

  2. 重啟SQL會話。

    如果您的工作空間中已有SQL會話,您需先停止SQL會話,然后再啟動SQL會話,以確保hive_metastore生效。

  3. 在SQL開發中查詢hive_metastore表的數據。

    1. 新建SQL開發,詳情請參見SQL開發

    2. 執行以下命令,查詢hive_metastore中的dw_users表。

      SELECT * FROM dw_users;

      image

常見問題

如何訪問HDFS數據?

根據HDFS集群是否配置了高可用(HA)模式,需要采取不同的配置策略。

  • 非HA HDFS路徑訪問

    當表的location指向一個沒有啟用高可用配置的HDFS路徑時,由于只有一個NameNode負責管理文件系統的命名空間,因此,不需要特別的配置即可直接訪問數據。

  • HA HDFS路徑訪問

    如果表的location指向的是一個啟用了高可用的HDFS路徑,由于存在多個NameNode,需要在會話實例的Spark配置中額外配置以下內容,以確保Java Runtime或Fusion引擎能夠正常訪問數據。

    Java Runtime訪問HDFS數據

    在EMR集群的集群服務頁面的HDFS服務的配置頁簽,參照hdfs-site.xml中內容新增下面的配置。

    說明
    • 在控制臺查看配置項時,需去掉配置項中的spark.hadoop.前綴。

    • 以下配置項的值僅為示例,具體以控制臺查詢結果為準。

    spark.hadoop.dfs.namenode.rpc-address.hdfs-cluster.nn1  master-1-1.<cluster-id>.<region>.emr.aliyuncs.com:***
    spark.hadoop.dfs.nameservices                       hdfs-cluster
    spark.hadoop.dfs.ha.namenodes.hdfs-cluster          nn1,nn2,nn3
    spark.hadoop.dfs.client.failover.proxy.provider.hdfs-cluster  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

    例如,在EMR控制臺查看配置信息。

    image

    Fusion引擎訪問HDFS數據

    1. 在EMR集群的集群服務頁面的HDFS服務的配置頁簽,參照hdfs-site.xml中內容新增下面的配置。

      說明
      • 在控制臺查看配置項時,需去掉配置項中的spark.hadoop.前綴。

      • 以下配置項的值僅為示例,具體以控制臺查詢結果為準。

      spark.hadoop.dfs.namenode.rpc-address.hdfs-cluster.nn1  master-1-1.<cluster-id>.<region>.emr.aliyuncs.com:****
      spark.hadoop.dfs.nameservices                       hdfs-cluster
      spark.hadoop.dfs.ha.namenodes.hdfs-cluster          nn1,nn2,nn3
      spark.hadoop.dfs.client.failover.proxy.provider.hdfs-cluster  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

      例如,在EMR控制臺查看配置信息。

      image

    2. 將集群的HDFS服務的hdfs-site.xml文件拷貝到OSS上,并重命名為hdfs-client.xml。例如,oss://<bucket>/tmp/hdfs-client.xml。

      關于配置文件路徑,請參見常用文件路徑

    3. 再在會話實例的Spark配置中額外新增以下內容。

      spark.files                                         oss://<bucket>/tmp/hdfs-client.xml
      spark.executorEnv.LIBHDFS3_CONF                     /opt/spark/work-dir/hdfs-client.xml