免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
#數(shù)據(jù)技術(shù)選型#即席查詢Shib+Presto,集群任務(wù)調(diào)度HUE+Oozie
鄭昀 創(chuàng)建于2014/10/30 最后更新于2014/10/31
一)選型:Shib+Presto
應(yīng)用場景:即席查詢(Ad-hoc Query)
1.1.即席查詢的目標
使用者是產(chǎn)品/運營/銷售運營的數(shù)據(jù)分析師;
要求數(shù)據(jù)分析師掌握查詢SQL查詢腳本編寫技巧,掌握不同業(yè)務(wù)的數(shù)據(jù)存儲在不同的數(shù)據(jù)集市里;
不管他們的計算任務(wù)是提交給 數(shù)據(jù)庫 還是 Hadoop,計算時間都可能會很長,不可能在線等待;
所以,
使用者提交了一個計算任務(wù)(PIG/SQL/Hive SQL),控制臺告知任務(wù)已排隊,給出大致的計算時間等友情提示, 這些作業(yè)的權(quán)重較低,
使用者和管理員可以查看排隊中的計算任務(wù),包括已執(zhí)行任務(wù)的執(zhí)行時間、運行時長和運行結(jié)果;
當計算任務(wù)有結(jié)果后,控制臺界面有通知提示,或者發(fā)郵件提示,使用者可以在線查看和下載數(shù)據(jù)。
1.2.即席查詢的當下技術(shù)選型
圖形交互界面:Shib;
數(shù)據(jù)查詢引擎:Facebook Presto。
1.3.為什么要更換數(shù)據(jù)查詢引擎?
  基于 MapReduce 的 Hadoop 適合數(shù)據(jù)批處理,但不適合即席查詢場景?;?InnoDB/MyISAM 存儲引擎的 MySQL 自然也不適合。當然我們也觀察過 InfiniDB/InfoBright 這種列式存儲數(shù)據(jù)庫引擎(仍基于MySQL),它們更適合基本不再變更的歷史 歸檔數(shù)據(jù),所以不太適合電商應(yīng)用場景。
  我們的鷹眼(Tracing)項目就曾折翼在即時查詢上,后端的 HBase 扛不住在大數(shù)據(jù)量下的實時插入和查詢。
  『Hive 更適合于長時間的批處理查詢分析,Impala、Shark、Stinger和Presto 適用于實時交互式SQL查詢,它們給數(shù)據(jù)分析師提供了快速實驗、驗證想法的大數(shù)據(jù)分析工具。所以可以先使用 Hive 進行數(shù)據(jù)轉(zhuǎn)換處理,之后使用這四個系統(tǒng)中的一個在 Hive 處理后的結(jié)果數(shù)據(jù)集上進行快速的數(shù)據(jù)分析。
  Impala、Shark、Stinger和Presto四個系統(tǒng)都是類SQL實時大數(shù)據(jù)查詢分析引擎,但是它們的技術(shù)側(cè)重點完全不同。而且它們也不是為了替換Hive而生,Hive 在做數(shù)據(jù)倉庫時是非常有價值的。這四個系統(tǒng)與Hive都是構(gòu)建在Hadoop之上的數(shù)據(jù)查詢工具,各有不同的側(cè)重適應(yīng) 面,但從客戶端使用來看它們與Hive有很多的共同之處,如數(shù)據(jù)表元數(shù)據(jù)、Thrift接口、ODBC/JDBC驅(qū)動、SQL語法、靈活的文件格式、存儲 資源池等?!弧堕_源大數(shù)據(jù)查詢分析引擎現(xiàn)狀,2014》
  最終我們選擇了 Presto。
  FaceBook于2013年11月份開源了Presto,一個分布式SQL查詢引擎,它被設(shè)計為用來專門進行高速、實時的數(shù)據(jù)分析。它支持標準的ANSI SQL,包括復(fù)雜查詢、聚合(aggregation)、連接(join)和窗口函數(shù)(window functions)。Presto設(shè)計了一個簡單的數(shù)據(jù)存儲的抽象層,來滿足在不同數(shù)據(jù)存儲系統(tǒng)(包括HBase、HDFS、Scribe等)之上都可以使用SQL進行查詢。

  Presto 簡化的架構(gòu)如下圖1所示,客戶端將 SQL 查詢發(fā)送到 Presto 的協(xié)調(diào)器。協(xié)調(diào)器會進行語法檢查、分析和規(guī)劃查詢計劃。調(diào)度器將執(zhí)行的管道組合在一起,將任務(wù)分配給那些離數(shù)據(jù)最近的節(jié)點,然后監(jiān)控執(zhí)行過程。客戶端從輸 出段中將數(shù)據(jù)取出,這些數(shù)據(jù)是從更底層的處理段中依次取出的。

  Presto 的運行模型與 Hive 有著本質(zhì)的區(qū)別。Hive 將查詢翻譯成多階段的 Map-Reduce 任務(wù),一個接著一個地運行。 每一個任務(wù)從磁盤上讀取輸入數(shù)據(jù)并且將中間結(jié)果輸出到磁盤上。然 而 Presto 引擎沒有使用 Map-Reduce。它使用了一個定制的查詢執(zhí)行引擎和響應(yīng)操作符來支持SQL的語法。除了改進的調(diào)度算法之外,所有的數(shù)據(jù)處理都是在內(nèi)存中進行的。不 同的處理端通過網(wǎng)絡(luò)組成處理的流水線。這樣會避免不必要的磁盤讀寫和額外的延遲。這種流水線式的執(zhí)行模型會在同一時間運行多個數(shù)據(jù)處理段,一旦數(shù)據(jù)可用的 時候就會將數(shù)據(jù)從一個處理段傳入到下一個處理段。 

  這樣的方式會大大的減少各種查詢的端到端響應(yīng)時間。

  同時,Presto 設(shè)計了一個簡單的數(shù)據(jù)存儲抽象層,來滿足在不同數(shù)據(jù)存儲系統(tǒng)之上都可以使用 SQL 進行查詢。存儲連接器目前支持除 Hive/HDFS 外,還支持 HBase、Scribe 和定制開發(fā)的系統(tǒng)。

圖1. Presto架構(gòu)

1.4.在HUE和Shib之間選擇了后者
  HUE 大家可能都聽說過。Shib 相對陌生一些,它是這么介紹自己的:WebUI for query engines: Hive and Presto。
  潘高鋒介紹了二者的優(yōu)缺點。
HUE
開發(fā)語言:Python
優(yōu) 點:Hue 是一個能夠與 Apache Hadoop 交互的 Web 應(yīng)用程序。一個開源的 Apache Hadoop UI。我們已經(jīng)在生產(chǎn)環(huán)境使用Hue了,而且Hue在管理Hbase/Pig/Hive方面有很大的優(yōu)勢,它還附帶了一個Oozie的應(yīng)用程序,用于創(chuàng)建 和監(jiān)控工作流程 。
缺點:Hue 是一個比較重的工具,改動起來涉及的東西會比較多,而且以后每次升級都可能會導(dǎo)致我們改動的功能要再修改 。
 
Shib
開發(fā)語言:Nodejs
優(yōu)點:Shib 通過簡單的配置就可以直接操作 hive 和 presto。代碼量比較小,修改起來工作量少很多 。
缺點:對 Nodejs 不熟悉,有學習成本 。
  最后我們選定了代碼量和開發(fā)量相對較少的 Shib 。
1.5.即席查詢的界面展示
  登錄 shib 后,選擇數(shù)據(jù)倉庫 presto-wowo_dw。編寫 sql 的時候,可以把表結(jié)構(gòu)的提示框移到一邊,邊寫邊參照,如下圖所示。
圖2 邊查詢邊看數(shù)據(jù)結(jié)構(gòu)
  由于所有的查詢都是異步的,所以可以在“我的查詢”列表中看到自己的查詢語句的執(zhí)行狀態(tài)和執(zhí)行結(jié)果,這樣不用自己在一直在查詢界面等待了,如下圖所示。
圖3 我的查詢
  還可以把自己常用的查詢語句保存到“書簽”里,這是一個很實用的功能。
  接下來就可以開發(fā)SQL查詢結(jié)果站內(nèi)通知機制以及更復(fù)雜的用戶訪問權(quán)限控制機制了。
二)選型:HUE+Oozie
應(yīng)用場景:Hadoop集群計算任務(wù)調(diào)度和管理平臺。
2.1.數(shù)據(jù)平臺跑數(shù)據(jù)所面對的困難
  電商數(shù)據(jù)平臺的報表維度有很多種,有總體簡報角度、運營角度、媒體投放角度等,也可以有商品、商戶、用戶、競品等維度,還有日報、周報和月報之分。所以對 應(yīng)了很多個計算任務(wù)。每一個計算任務(wù)可以視為一個工作流,畢竟計算過程是很復(fù)雜的、一環(huán)套一環(huán)。那么 HUE+Oozie 就是可視化管理和調(diào)度這些工作流的。
  沒有 Oozie 之前是什么樣?
  一,計算腳本被配置為定時任務(wù),跑飛了只能從海量日志中大海撈針,不知道斷在哪兒,只能手動清數(shù)據(jù)從頭再跑。任務(wù)計算時間特別長,不知道當前跑到哪一步了,還需要多久能跑完。
  二,難以精確控制任務(wù)A跑完了才能跑任務(wù)B,只能在不同定時任務(wù)之間留足夠長的時間間隔,缺乏彈性。
2.2.Oozie是什么
  Oozie是一種 Java Web 應(yīng)用程序,它運行在 Tomcat 中,并使用數(shù)據(jù)庫來存儲以下內(nèi)容:工作流定義、當前運行的工作流實例(包括實例的狀態(tài)和變量)。
  我們最欣賞它的三點:
  • Oozie允許失敗的工作流從任意點重新運行,這對于處理工作流中由于前一個耗時活動而出現(xiàn)瞬態(tài)錯誤的情況非常有用。
  • 工作流執(zhí)行過程可視化。
  • 工作流的每一步的日志、錯誤信息都可以點擊查看,并實時滾動,便于排查問題。
2.3.還是看截圖吧
  先選擇HUE導(dǎo)航欄上的“Oozie Editor/Dashboard”,看到默認面板:
圖5 oozie默認面板
  點擊某個工作流,進入詳情頁:
圖6 工作流詳情頁
  一個工作流的定義如下圖7所示,XML格式的 hPDL。hPDL是一種很簡潔的語言,只會使用少數(shù)流程控制和動作節(jié)點??刂乒?jié)點會定義執(zhí)行的流程,并包含工作流的起點和終點(start、end和 fail節(jié)點)以及控制工作流執(zhí)行路徑的機制(decision、fork和join節(jié)點)。
圖7 工作流定義
  現(xiàn)在,數(shù)據(jù)平臺的各種計算任務(wù)都遷移到 Oozie 中,按照 hPDL 語言格式一一重新定義。
三)總結(jié)一下數(shù)據(jù)中心的各種技術(shù)選型
  羅列如下,不再解釋:
Apache Hadoop/Hive/HBase
Apache Pig
Flume/Kafka/Storm/Sqoop/awk
Facebook Presto
MySQL
HUE/Shib
Oozie
-over-
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
菜鳥也能玩轉(zhuǎn)大數(shù)據(jù):Airbnb開源Presto數(shù)據(jù)庫SQL工具 | 36大數(shù)據(jù)
揭秘大數(shù)據(jù)(一)從Hadoop框架討論大數(shù)據(jù)生態(tài)
Hadoop/Spark生態(tài)圈里的新氣象
寫給大數(shù)據(jù)開發(fā)初學者的話
科譜 | 一文了解大數(shù)據(jù)五個通用化處理框架與三大核心技術(shù)
淺談大數(shù)據(jù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服