日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

導讀:網易大數據平臺的底層數據查詢引擎,選用了Impala作為OLAP查詢引擎,不但支撐了網易大數據的交互式查詢與自助分析,還為外部客戶提供了商業化的產品與服務。今天將為大家分享下Impala在網易大數據的優化和實踐。01Impala的定位及優勢

Impala有哪些優勢,讓我們選擇Impala作為網易內部的OLAP查詢引擎?

1. Impala在數據處理中的角色

先來看一下Impala在數據處理中的角色。

Impala在網易大數據的優化和實踐

 

對于數據量較少的場景,例如百萬數據以下的情況,可以采用傳統的關系型數據庫,如MySQL或者PostgreSQL等,或者一些文檔數據庫,比如MongoDB等。隨著數據量的增大,達到上億級別時,一般選擇分析型數倉來存儲,并使用OLAP引擎來查詢。此等規模的數據查詢,對響應時間的要求雖然比關系型數據庫要低,但一般也要求在秒級返回查詢結果,不能有太大的延遲。Impala、Presto、Greenplum等都在此列。當規模繼續擴大到上百億以上時,則會選擇批處理引擎,如Hive、Spark來進行數據處理。

今天分享的Impala就是針對分析型數倉的查詢引擎。分析型數倉有很多種建模方式。

Impala在網易大數據的優化和實踐

 

以Druid和Click House為代表的寬表模型,還有以Impala等為代表的星型/雪花型的建模方式。我們將Impala作為通用的查詢引擎,比較典型的應用場景有自助數據分析、BI報表等。在分享的第三部分,有關于Impala在網易大數據平臺“猛犸”中的介紹,以及在網易云音樂中的實際使用場景的說明。

2. Impala的優勢

網易為什么選擇Impala作為OLAP查詢引擎,Impala到底有哪些優勢?Impala的優勢,總結起來包括:

  • MPP 架構,去中心化
  • 優秀的查詢性能
  • 友好的 WebUI 界面
  • 完全兼容 Hive 元數據
  • Apache 頂級項目,社區活躍度高
  • 支持多種數據格式( Parquet/ORC 等)
  • 與 Kudu 結合使用,實時數倉

① 去中心化的MPP并行架構

Impala在網易大數據的優化和實踐

 

相比于傳統的關系型數據庫,MPP架構可以充分發揮多服務器的特點,將數據量比較大的操作,分散在多臺服務器上并行處理。這些復雜的大數據量的操作,對于單臺服務器來說是無法完成的任務。

Impala還區別于其他MPP架構的引擎的一點,是Impala有多個Coordinator和Executor,多個Coordinator可以同時對外提供服務。多Coordinator的架構設計讓Impala可以有效防范單點故障的出現。

② 優秀的查詢性能

Impala在網易大數據的優化和實踐

 

Impala支持CBO(基于代價的執行優化),除此之外,Impala還對Catalog進行了緩存。緩存的信息包括:庫和表的信息、HDFS數據庫、統計信息等。元數據都緩存在了Impala內部,在做CBO時,能夠發揮更大的優勢,做出更優的選擇。除此之外,Impala同時具有典型的OLAP引擎應有的特征:靜態代碼生成支持LLVM、JIT;支持HDFS本地讀區,減少訪問NameNode、DataNode和數據網絡傳輸的開銷,對性能有比較大的提升;還有算子下推,runtime filter在Join時,對與join條件之外的列可以進行動態過濾。

從我們實際使用效果來說,Impala性能優勢非常明顯。前段時間我們對Impala、presto和spark3.0進行了對比測試。測試用例選擇tpcds,并行節點8個。

Impala在網易大數據的優化和實踐

 

總的來說,Impala相比Presto有明顯的優勢,相比Spark 3.0也有一定的優勢。Spark 3.0對性能做了很多優化和改進,相比之下Impala性能有一些優勢,不過Impala因為支持的SQL類型少一些,有一些tpcds的測試用例并不能完成。

③ 友好的WebUI界面

Impala在網易大數據的優化和實踐

 

一般來說,大數據查詢引擎的查詢計劃,比關系型數據庫的查詢計劃復雜的多。Impala提供了一個比較友好的WebUI,在這個界面上,能看到完整的執行計劃、內存使用情況、異常查詢分析,也可以通過界面終止查詢語句。

此外,Impala的優勢還體現在:完全兼容Hive元數據、Apache頂級項目有較高的社區活躍度、支持多種數據格式(Parquet、ORC等)、可以與Kudu結合使用等。

02對Impala的一些增強和優化

在我們生產實踐中,也發現了Impala的一些不足,因此網易大數據團隊對Impala進行了一些優化和增強。包括以下幾個方面:

  • Impala 管理服務器
  • 元數據同步增強
  • 基于zookeeper的服務高可用
  • 支持更多存儲后端
  • 其他增強和優化

1. Impala管理服務器

Impala已經提供了WebUI的情況下,為什么需要一個管理服務器?

其中一個原因,是社區版的WebUI是非持久化的,一旦Impalad異常退出,這些信息都會丟失。

Impala在網易大數據的優化和實踐

 

我們通過MySQL存儲WebUI上的信息,將統計信息、執行信息等重要信息保存到MySQL數據庫中,實現持久化保存。在此基礎上,管理平臺給我們帶來許多增值收益。相比于原生的WebUI,增強版的WebUI可以匯總各個coordinator執行的SQL語句,直觀展示當前執行的SQL。

還可以作為集群持續優化的平臺。因為記錄了歷史執行的SQL,可以為后續SQL優化提供依據,比如集群SQL的性能指標、隨時間變化的性能表現,以及大部分SQL的執行時間。通過統計SQL執行失敗的次數,出錯SQL,為定位和回溯問題提供幫助。

Impala在網易大數據的優化和實踐

 

2. 元數據同步增強

Impala對元數據的緩存,一方面大幅提升了查詢性能,但另一方面,元數據更新也帶來了新的問題。因為數據可以不通過Impala客戶端,而通過其他組件比如Hive進行更新,這就讓Impala無法感知到元數據的更新。而老舊的元數據會導致查詢失敗或者性能下降。因此,需要一個機制能夠讓Impala及時感知元數據的更新。社區版提供了INVALIDATE METADATA這一命令,可以手動刷新元數據。不過如果一些用戶不熟悉這個操作,沒有更新Impala緩存的元數據,就會導致查詢的問題。怎么解決這樣的問題?

Impala在網易大數據的優化和實踐

 

網易對此進行優化,引入了元數據自動同步機制:在Hive進行DDL相關操作時,記錄操作日志,Impala通過消費操作日志,進行必要的Invalidate Metadata的操作,無須人工操作,大大提高了元數據緩存的可用性和實時性。對于提升Impala的查詢性能,降低查詢錯誤都有很大的幫助。

另外一個是元數據的黑白名單機制,配合Impala不同的元數據加載方式。對于啟動時加載元數據的,配置黑名單,屏蔽不需要通過Impala查詢的表;對于延遲加載元數據的,配置白名單,即刻加載元數據,避免首次查詢時延遲過大。

另外需要提醒的是,Impala 3.x版本在元數據緩存管理上有了極大的改進,網易大數據團隊也在調研中,準備從2.12升級到3.4版本。

3. 基于ZK的服務高可用

雖然每一個Impalad都可以作為Coordinator,對外提供訪問服務,接受客戶端請求,但是缺乏一個路由機制。當一個client連接的特定coordinator失效之后,就無法在進行查詢了。

Impala在網易大數據的優化和實踐

 

網易大數據團隊參考Hive的實現,引入zookeeper作為訪問代理,客戶端首先通過zookeeper找到可用的coordinator節點,然后再提交SQL查詢請求。通過這種方式,提供了更健壯的查詢服務模式。

4. 支持更多存儲后端

對于后端存儲的支持,網易團隊增加了對iceberg表的創建和查詢的支持。已經在云音樂業務上使用,并且貢獻給了Impala社區。

Impala在網易大數據的優化和實踐

 

其他后端還包括對Alluxio的支持,使用Alluxio作為Impala和HDFS之間的二級緩存。這方面的詳細信息,可以搜索《網易嚴選:基于 Alluxio+Impala 深度融合架構的 BI 系統性能優化實踐》。

此外對接Elastic Search查詢,充分發揮了ES倒排索引的優勢。

5. 其他增強和優化

Impala在網易大數據的優化和實踐

 

其他的增強還有:權限的優化、Hive多版本適配、支持JSON,以及社區版的一些Bug修正。

03Impala在網易的使用案例分析

1. Impala的部署和使用

Impala兩種部署方式:混合部署與獨立部署?;旌喜渴鹗侵窱mpala和其他大數據組件共用HDFS。而獨立部署則是為Impala配置獨立的HDFS。獨立部署的優勢在于IO和網絡通信都有保障,對性能和穩定性的提升有幫助。但是代價也十分明顯:成本上升。

Impala在網易大數據的優化和實踐

 

Impala與Kudu結合,可以用來構建實時數倉。Kudu增量寫入,定期保存到HDFS。Kudu的使用一方面提供了更新數據和刪除數據的能力,另一方面也解決了HDFS上小文件的問題。而Impala可以同時查詢Kudu和HDFS上的數據。

Impala在網易大數據的優化和實踐

 

網易內部對集群的監控,對接了網易內部的哨兵服務??梢蕴峁蕦崟r的告警能力。運維人員通過設置閾值,訂閱告警信息,從而了解集群的監控程度。

此外,對于Impala集群的部署和使用,還有幾點需要注意:

  • 按照大業務劃分不同的集群
  • 按照不同的子業務或者 SQL 類型劃分隊列
  • coordinator 節點與 executor 節點分開部署
  • 對于機器數比較少的集群,機器上可部署多個節點,增加并發
  • 業務方重試機制,以免 impalad 節點掛掉導致 SQL 失敗
  • 通過 impala hint 改變表的 join 方式
  • 結合實際情況參考是否設置 mem_limit ,設置多大 mem_limit

2. 網易大數據中的Impala

在網易大數據平臺“猛犸”中,Impala位于數據計算層,提供交互式查詢的能力,對應的應用場景是自助分析。

Impala在網易大數據的優化和實踐

 

在網易對外提供的產品和服務中,復雜報表和自助取數,都用到了Impala。其中自助分析服務適用于有一定SQL基礎的用戶,通過自己寫SQL語句,查詢數據。靈活性比較大,同時門檻也比較高。

Impala在網易大數據的優化和實踐

 

網易有數的自助取數服務(easyFetch)可以通過拖拽維度和度量,方便的獲取數據,并生成圖表報告。后端對接的是網易有數的API。非常適合非專業人員使用數據,發揮出數據的生產力。

Impala在網易大數據的優化和實踐

 

網易現在內部有8個Impala集群,超過200個節點,最大集群規模超過60個節點。除了內部服務外,對外的商業化服務,已經有超過20個Impala集群。

3. Impala在云音樂的使用實踐

網易云音樂,有2個Impala集群,超過60個節點的規模。主要的應用場景包括:有數報表、自助分析、音樂版權、A/B測試,easyFetch等等。絕大部分應用場景下,Impala的查詢時間不超過2秒。

Impala在網易大數據的優化和實踐

 

云音樂A/B測試早期使用Spark按照小時粒度,完成從ODS到DWD層的數據清洗工作,之后生成用戶分流表和指標統計表,再使用Spark關聯這兩張表的結果寫入到Kudu中,最后使用Impala對接數據,供用戶查詢。這樣數據延遲至少1~2小時,有些結果甚至在第二天才能看到。但是對于A/B測試,能夠實時看到結果才是最好的。

Impala在網易大數據的優化和實踐

 

對此云音樂團隊基于Flink做了實時性改造。將DWS變成流表,這樣Impala可以同時查詢T+1的結果表和流表中的實時數據。A/B測試的效果就可以近實時的看到了。

今天的分享就到這里,謝謝大家。

嘉賓介紹:

Impala在網易大數據的優化和實踐

 

溫正湖

網易杭研 | 高級數據庫技術專家

杭研大數據產品中心OLTP&OLAP內核團隊負責人。10年數據庫和存儲開發經驗,專注于數據庫、數倉技術和分布式系統架構;累計申請10+技術發明專利 ( 已授權8個 ),《MySQL 內核:InnoDB 存儲引擎 卷1》作者之一。

文章作者:溫正湖 網易杭研

編輯整理:張博

出品平臺:DataFunTalk

分享到:
標簽:數據
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定