一、新建cube第一次消費的情況:
此種情況根據kylin.stream.consume.offsets.latest配置,true表示從最新的資料開始消費,false表示從最早的資料開始消費,預設為true.
二、disable cube再enable的情況
1、清空zk節點上此cube的資料
(/kylin/kylin:kylin_metadata/stream/cubes/cubename);
2、刪除此cube在 hdfs上的資料(/user/kylin/kylin_prod-kylin_metadata/stream/cubename);
3、刪除所有receiver節點上此cube的資料(通過http呼叫receiver的admincontroller.unassign停止消費此cube資料、刪除節點上此cube數==/home/hadoop/data/kylin_prod/inner/cubename==)
1、在zk上建立此cube的節點
(/kylin/kylin:kylin_metadata/stream/cubes/cubename);
2、計算此cube的assignment(分配到那幾個replicatset等);
3、呼叫分配給此cube的所有receiver進行資料消費
(通過http呼叫receiver.admincontroller.assign方法):
3.1、確定kafka消費起始點:獲取本地checkpoint(由於本地資料之前disable的時候已經被刪除,所以為空),獲取remote的checkpoint(最後乙個ready 的segment的checkpoint),具體**參見(kafkasource.setupconnectorfromcheckpoint方法);
3.2、確定會處理的最小時間minaccepteventtime,latestremotesegment.gettsrange().end.v有值則此值作為最小時間,否則根據配置的cube.getdescriptor().getpartitiondatestart()為最小時間,否則為0,參見**streamserver.createnewconsumer方法;
3.3、啟動kafkaconsumer開始消費,參見streamingconsumerchannel.start()方法:kafkaconnector.open方法設定消費起始點,繫結topic和要消費的此topic的partition、streamingconsumerchannel.run()開始真正拉取資料並消費並儲存checkpoint到本地。
如何做研究
來自 在研究生期間,一開始大家都很迷惑,都不知道自己要幹什麼 該幹什麼?即便知道自己要幹什麼,也不知道從哪幹起?上次兩位老師跟我們交流了一下,下面是他們的心得 給乙個專案 解決方案 問題分塊 任務明細 一開始並不是所有的問題都會想到,但是起碼要有乙個大體的框架在心中,然後細化模組,對每乙個功能進行細...
如何做專案
1,以業務規則為綱,而不是業務實體 2,在思考和設計業務規則的時候,以業務核心為綱,什麼是業務核心,定義為,當前你最關注的,當前最不確定的那一部分。所以我現在不喜歡領域驅動,我喜歡業務驅動 其實可能二者是一碼事 那麼我這裡所說的業務驅動要怎麼驅動法呢?就先以上面兩條為起頭,然後再來說,業務規則,以找...
C 是如何做爬蟲的
建立url,並建立請求 攜帶cookie request.cookiecontainer cookiecontainer 傳送請求,並獲取html 讀取流 streamreader streamreader new streamreader stream,encoding.getencoding g...