日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

HMS数据库设置和优化

發布時間:2024/8/23 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HMS数据库设置和优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:Hive Metastore (HMS) 是一種服務,用于在后端 RDBMS(例如 MySQL 或 PostgreSQL)中存儲與 Apache Hive 和其他服務相關的元數據。本文主要分享HMS數據庫設置和優化

設置 Metastore 數據庫

如果您有本地集群,則需要知道如何為 Hive Metastore (HMS) 設置后端數據庫。設置包括安裝受支持的數據庫、配置屬性、指定 Metastore 位置。您還可以配置可選的連接參數。

您需要為 Hive Metastore (HMS) 安裝支持的數據庫來存儲元數據。您可以通過修改hive-site.xml. 您可以使用 Cloudera Manager 安全閥功能而不是hive set key=value在命令行上。

設置后端 Hive Metastore 數據庫

CDP公有云后端Hive Metastore數據庫僅支持PostgreSQL,一般無需手動安裝。在CDP Private Cloud Base 中,您需要安裝、啟動和配置后端數據庫。

在此過程中,您將在與 HiveServer 不同的節點/集群上安裝數據庫,以便與 Hive、Impala、Spark 和其他組件共享 Hive 元存儲 (HMS)。不要將 HiveServer 和數據庫放在同一個節點上。您的集群中可以有一個或多個 HMS 實例,它們可以在出現問題時接管。

安裝受支持的數據庫。

  • MariaDB/MySQL
  • PostgreSQL
  • Oracle

配置 Metastore 數據庫屬性

在CDP Private Cloud Base 中,您可以通過使用 Cloudera Manager 安全閥功能間接修改hive-site.xml來配置 Hive 和 Hive 元存儲。一個循序漸進的過程向您展示了如何設置一些屬性名稱和值來代替hive set key=value在命令行上使用,這是不受支持的。

此任務假定數據庫正在運行myhost,用戶帳戶是hiveuser,密碼是mypassword。根據您的數據庫類型替換以下連接 URL 和驅動程序名稱。

  • MySQL 連接URL:jdbc:mysql://myhost/metastore

MySQL 驅動程序名稱:com.mysql.jdbc.Driver

  • Postgres 連接URL:jdbc:postgresql://myhost/metastore

Postgres 驅動程序名稱:jdbc:postgresql://myhost/metastore

  • Oracle 連接 URL:jdbc:oracle:thin:@//myhost/xe

Oracle 驅動程序名稱:oracle.jdbc.OracleDriver

  • 以下組件正在運行:
  • HiveServer
  • Hive Metastore
  • Metastore 的數據庫,例如默認的 MySQL 服務器
  • Hive 客戶端
  • 最低要求角色:配置者(也由集群管理員、完全管理員提供)
  • 通過導航到Cloudera Manager > Hosts > Role(s)并查看角色列表以查找Hive Metastore ?Server的完全限定域名或 IP 地址。
  • ? ? ?2. ?在Clusters > Hive Metastore > Configuration 中導航到 Metastore 主機配置,然后搜索 javax.jdo.option.ConnectionURL.

    ? ? ?3. ?在值中,使用以下語法指定數據庫連接字符串: <connection protocol>://<metastore host>/<metastore database>?createDatabaseIfNotExist=true

    在以 XML 格式查看中,將出現 XML 配置片段。

    <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://10.65.13.98/mydb?createDatabaseIfNotExist=true</value> <description>Database connection string</description> </property>
  • 或者,在集群中的所有主機上重復前面的步驟。
  • 以相同的方式,在 Metastore 主機(必需)或所有主機(可選)上指定其他必需的連接屬性,如下例所示。
  • <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>(your driver name)</value> </property><property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property><property> <name>javax.jdo.option.ConnectionPassword</name> <value>mypassword</value> </property><property> <name>datanucleus.autoCreateSchema</name> <value>false</value> </property><property> <name>datanucleus.fixedDatastore</name> <value>true</value> </property><property> <name>datanucleus.autoStartMechanism</name> <value>SchemaTable</value> </property><property> <name>hive.metastore.schema.verification</name> <value>true</value> </property>

    配置 Metastore 位置和 HTTP 模式

    除了需要在CDP Private Cloud Base 中設置的數據庫屬性之外,還必須配置 Metastore URI 屬性。該屬性定義了一個或多個 Metastore 位置。

    • 最低要求角色:配置者(也由集群管理員、完全管理員提供)
  • 在Clusters > Hive Metastore > Configuration 中,搜索hive-site.xml
  • 在用于更改 hive-site.xml 中的屬性的 Hive Metastore 服務器高級配置安全閥中,單擊 + 并hive.metastore.uris使用以下語法添加 屬性:thrift://<n.n.n.n>:9083
  • ? ? ?Metastore 主機的 IP 地址或完全限定域名 (FQDN) 替換<n.n.n.n>。

    ? ? ?只有 hive-site.xml 中的 Hive Metastore Server Default Group 應定義此屬性。

    設置 JDBC URL 連接覆蓋

    您可以配置 HMS 數據庫連接的細粒度調整。您指定一個 JDBC URL 覆蓋,這取決于您的數據庫,用于建立到 Hive 元存儲數據庫的連接。

    此任務僅適用于高級數據庫用戶。使用此覆蓋時,將覆蓋以下屬性

    • Hive Metastore 數據庫名稱
    • Hive Metastore 數據庫主機
    • Hive Metastore 數據庫端口
    • 對 Hive Metastore 數據庫啟用 TLS/SSL
    • 所需的默認用戶角色是配置員。
    • 您知道用于設置以下屬性的值:
    • Hive Metastore 數據庫類型
    • Hive Metastore 數據庫用戶
    • Hive Metastore 數據庫密碼
  • 根據您的集群配置設置 Hive Metastore Database JDBC URL Override 屬性的值。
    • MySQL
    jdbc:mysql://<host>:<port>/<metastore_db>?key=value
    • PostgreSQL
    jdbc:postgresql://<host>:<port>/<metastore_db>?key=value
    • 使用服務名稱的 Oracle JDBC Thin
    jdbc:oracle:thin:@//<host>:<port>/<service_name>
    • 使用 SID 的 Oracle JDBC Thin
    jdbc:oracle:thin:@<host>:<port>:<SID>
    • 使用 TNSName 的 Oracle JDBC Thin
    jdbc:oracle:thin:@<TNSName>

    2. ?單擊保存。

    3. ?單擊 操作>部署客戶端配置。

    4. ?重新啟動 Hive Metastore。

    優化元存儲

    與其他調優過程類似,一般 Metastore 調優涉及調整和測試,直到您發現可以提高 Metastore 性能的更改組合。調整建議包括硬件和軟件更改。

    通常,您需要限制與 Hive Metastore 的并發連接。隨著打開連接數量的增加,延遲也會增加。后端數據庫問題、Hive 使用不當(例如極其復雜的查詢、連接泄漏和其他因素)都會影響性能。

    通常的Metastore 調優

    嘗試進行以下更改以調整 HMS 性能:

    • 確保單個查詢訪問不超過 10,000 個表分區。如果查詢連接表,計算跨所有表訪問的組合分區計數。
    • 調整后端(RDBMS)。HiveServer連接HMS,只有HMS連接RDBMS。后端花費的時間越長,HMS 響應相同請求所需的內存就越多。限制后端數據庫中的連接數。

    MySQL:例如,在 /etc/my.cnf 中:

    [mysqld] datadir=/var/lib/mysql max_connections=8192 . . .

    MariaDB:例如,在 /etc/systemd/system/mariadb.service.d/limits.conf 中:

    [Service] LimitNOFILE=24000 . . .
    • 使用默認的 thrift 屬性 (8K):
    hive.server2.async.exec.threads 8192 hive.server2.async.exec.wait.queue.size 8192 hive.server2.thrift.max.worker.threads 8192
    • datanucleus.connectionPool.maxPoolSize為您的應用程序設置。例如,如果 poolSize = 100,有 3 個 HMS 實例(一個專用于壓縮),每個服務器有 4 個池,則可以容納 1200 個連接。

    原文鏈接
    本文為阿里云原創內容,未經允許不得轉載。?

    總結

    以上是生活随笔為你收集整理的HMS数据库设置和优化的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。