不生產部落格,只是官網的搬運工
目錄
impala daemon
impald statestore
catalog service
impala是乙個分布式的mpp資料庫引擎,在cdh集群中由執行在指定主機上的不同的daemon程序組成
核心的impala元件是impala daemon,由impalad(cdh impala服務impalad角色)表示,負責一些關鍵的功能
1.讀寫資料
2.接受來自impala-shell命令列、hue、jdbc、odbc的查詢請求
3.並行執行查詢並且在整個集群中分配工作
4.傳送中間查詢結果到coordinator節點
impala daemon可以通過以下方式部署
1.儲存、計算在一起,和datanode在相同節點上
2.單獨部署在計算集群,遠端拉取資料從hdfs、s3等等
impala daemon不斷的與statestore通訊,來確保哪些daemon是健康的並且可以接受新的工作
他們也接收來自catalogd daemon的廣播資訊當集群中的impala daemon 執行create、alter、drop任何型別的object(可能是庫、表、column、role等),或者通過impala執行的insert、load data語句。這種後台的通訊最小化了refresh或invalidate metadata獲取元資料的需要在impala1.2之前,如果沒有這個catalog服務,每次執行ddl都需要重新整理元資料,有了之後,impala sql導致的元資料改變不需要手動重新整理
在cdh5.12/impala2.9之後,可以控制那個節點充當coordinator節點和控制那些節點充當計算節點,以便提高高負載集群的伸縮性
該元件檢測集群中impala daemon節點的健康狀態,並且不斷的將結果傳遞給每個impala daemon,僅需要將該角色安裝在一台節點上,如果一台impala daemon宕掉,這個statestore將通知別的impalad節點,防止以後有task分到該節點
如果在statestore角色宕掉時執行ddl操作,將失敗
statestore、catalog角色無需高可用,它們宕了也不會造成資料丟失,如果這倆角色宕掉不可恢復,刪除角色,並在別的節點新增即可
該服務主要分發由impala sql導致的元資料改變到集群每個impalad計算節點,僅需要乙個節點安裝該角色,因為分發請求是由statestore發起的,所以最好catalog、statestore角色裝同一節點
該服務避免執行refresh、invalidate metadata語句的需要當元資料改變是由impala語句造成的,當用hive執行ddl或load data的時候,在執行查詢前,需要手動執行refresh或invalidate metadata
這個功能涉及到impala的多個方面:
不需要手動刷元資料當通過impala執行create table、insert或者別的ddl、dml操作,如果操作是通過hive或者直接操錯hdfs檔案仍需要手動重新整理,只需要在一台impala daemon節點執行,而不是所有節點執行
-load_catalog_in_background引數控制元資料什麼時候載入元資料
cdh5.16.2預設false
false:如果設定為flase.表的元資料在第一次使用的時候被載入,意味著第一次有查詢涉及到該錶時可能會比以後同樣的查詢慢,impala2.2開始,預設false
true:如果設定為true,載入表的元資料即使沒有查詢涉及到該錶,所以在第一次查詢之前,該錶的元資料已經被載入,不建議設定為true,因為後台的load可能會干擾到某查詢涉及到表的元資料載入,這種情況可能發生在服務剛啟動或者元資料不可以之後,後台載入的耗時由元資料數量決定,可能導致某條sql執行很長時間,影響我們判斷,impala可能load元資料對於那些我們從未使用的表,造成資源浪費
catalog角色同statestore一樣,宕掉的話,直接刪掉,在別的節點新增即可。
react 官網筆記 01
之所以從react官網學習react,1是因為英語不好,希望能有所改進,內容不保證對錯,只是自己的理解 更好的請參見 在react中使用jsx語法,可以把它理解為一種融合html與js的新語言,整個react都是由他構成 react的 唯一渲染出口應該就是 reactdom.render docum...
STL 官網學習筆記 unique
1 unique,顧名思義,就是給容器內的連續的元素去重,這些連續重複的元素中只保留最前面的那乙個 2 unique是穩定的,去重後,剩餘的元素順序是不變的 3 需要標頭檔案 algorithm 4 unique有兩個方法,乙個是用預設的方式來定義重複元素,另一種是以自定義方式來判斷是否是重複元素 ...
react 官網筆記 06 狀態提公升
如果兩個相鄰的元件想要使用相同的state去渲染元件,要實現乙個元件內部的邏輯更改state也會讓相鄰元件的ui更改,就需要使用 狀態提公升 了,原理就是把model提公升到離他們最近的公共父元件中,通過props傳遞給子元件,但是遇到乙個問題,因為props是不應該被改變的,在子元件中無法通過se...