cassandra streaming 操作(翻譯2)
請求(Request)
1. 目標節點編譯一個它需要從其他節點獲取的範圍列表。
2. 目標節點傳送一個包含key範圍列表的StreamRequestMessage訊息給源節點。
3. 源節點準備指定範圍的sstable 檔案,並建立暫掛檔案。
4. 源節點流傳輸列表中俄第一個檔案。第一個流的頭部包含當前流的資訊以及剩餘的請求範圍內的暫掛檔案列表。
5. 目標節點接收流並寫入到磁碟,產生相應的日誌資訊"Streaming added org.apache.cassandra.io.sstable.SSTableReader(path='/var/lib/cassandra/data/Keyspace1/Standard1-e-1-Data.db')".
6. 目標節點根據此指引一次請求一個後續檔案。如果發生錯誤,則重複請求相同的檔案,否則繼續直到完成。
7. 源節點流傳輸每一個請求的檔案。因為檔案已經進行anti-compact,所以僅僅流傳輸到目標節點。
流傳輸呼叫(Streaming Invocations)
Cassandra節點間流輸出會在如下場景中用到:
1. Bootstrapping - 在bootstrap過程中,一個節點向其他節點請求key範圍,呼叫Stream Request.
2. Repair - 逆熵服務透過比較Merkle Tree進行修復操作,在這個過程的最後一步就是按照上面的流程順序將衝突的key範圍傳送到其他節點,或向其他節點請求衝突的key範圍。
3. Restore Replica - StorageService處理Stream request。
4. Un-bootstrap - 在節點退出或移動過程,呼叫un-bootstrap將節點範圍傳送到其他節點。此過程只呼叫傳輸(Transfer)操作
監控(Monitoring)
Anti-compaction操作既進行request又進行transfer操作,所以耗費時間最長,可以使用org.apache.cassandra.db.CompactionManager這個mbean進行監控。
流傳輸的監控可以同時在源節點和目標節點呼叫MBEAN org.apache.cassandra.streaming.StreamingService .狀態屬性提供了一個簡單的標示表明進行流輸出節點的正在進行的處理。getOutgoingFiles(host) 和 getIncomingFiles(host)兩個操作返回一個字串列表描述正傳入和傳出檔案的狀態。每個字串的格式如下:
[path to file] [bytes sent/received]/[file size]
如果認為叢集中流操作花費了太多時間,你首先要做的是檢查StreamSources 或者StreamDestinations以明確哪些節點在傳輸檔案。使用主機作為getOutgoingFiles() 或 getIncomingFiles()的引數檢查問題主機每個檔案的狀態。流傳輸被分割成32M大小的的片段,所以應該每個幾秒中重新整理檔案狀態檢查傳送/接收值是否改變。如果一直沒變或者比預期的要慢很多,那麼表明存在問題。
流狀態可以使用下面的方式監控:
nodetool -h streams[@more@]
1. 目標節點編譯一個它需要從其他節點獲取的範圍列表。
2. 目標節點傳送一個包含key範圍列表的StreamRequestMessage訊息給源節點。
3. 源節點準備指定範圍的sstable 檔案,並建立暫掛檔案。
4. 源節點流傳輸列表中俄第一個檔案。第一個流的頭部包含當前流的資訊以及剩餘的請求範圍內的暫掛檔案列表。
5. 目標節點接收流並寫入到磁碟,產生相應的日誌資訊"Streaming added org.apache.cassandra.io.sstable.SSTableReader(path='/var/lib/cassandra/data/Keyspace1/Standard1-e-1-Data.db')".
6. 目標節點根據此指引一次請求一個後續檔案。如果發生錯誤,則重複請求相同的檔案,否則繼續直到完成。
7. 源節點流傳輸每一個請求的檔案。因為檔案已經進行anti-compact,所以僅僅流傳輸到目標節點。
流傳輸呼叫(Streaming Invocations)
Cassandra節點間流輸出會在如下場景中用到:
1. Bootstrapping - 在bootstrap過程中,一個節點向其他節點請求key範圍,呼叫Stream Request.
2. Repair - 逆熵服務透過比較Merkle Tree進行修復操作,在這個過程的最後一步就是按照上面的流程順序將衝突的key範圍傳送到其他節點,或向其他節點請求衝突的key範圍。
3. Restore Replica - StorageService處理Stream request。
4. Un-bootstrap - 在節點退出或移動過程,呼叫un-bootstrap將節點範圍傳送到其他節點。此過程只呼叫傳輸(Transfer)操作
監控(Monitoring)
Anti-compaction操作既進行request又進行transfer操作,所以耗費時間最長,可以使用org.apache.cassandra.db.CompactionManager這個mbean進行監控。
流傳輸的監控可以同時在源節點和目標節點呼叫MBEAN org.apache.cassandra.streaming.StreamingService .狀態屬性提供了一個簡單的標示表明進行流輸出節點的正在進行的處理。getOutgoingFiles(host) 和 getIncomingFiles(host)兩個操作返回一個字串列表描述正傳入和傳出檔案的狀態。每個字串的格式如下:
[path to file] [bytes sent/received]/[file size]
如果認為叢集中流操作花費了太多時間,你首先要做的是檢查StreamSources 或者StreamDestinations以明確哪些節點在傳輸檔案。使用主機作為getOutgoingFiles() 或 getIncomingFiles()的引數檢查問題主機每個檔案的狀態。流傳輸被分割成32M大小的的片段,所以應該每個幾秒中重新整理檔案狀態檢查傳送/接收值是否改變。如果一直沒變或者比預期的要慢很多,那麼表明存在問題。
流狀態可以使用下面的方式監控:
nodetool -h
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23937368/viewspace-1054982/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 蝴蝶書-task2: 文字推理、摘要、糾錯 transformers實現翻譯 OpenAI翻譯 PyDeepLX翻譯 DeepLpro翻譯ORMOpenAI
- docker官方文件翻譯2Docker
- rabbitmq 官方文件翻譯-2MQ
- Electron教程翻譯2:安裝
- 學php之翻譯wordpress(2)PHP
- Spark Streaming中的Window操作Spark
- Spark 系列(十四)—— Spark Streaming 基本操作Spark
- 翻譯 | Learning React Without Using React Part 2React
- 2006考研閱讀Text2翻譯
- <<Modern CMake>> 翻譯 2. CMake 基礎
- 操作指南|最詳盡文件翻譯志願指南
- 翻譯
- Laravel 配合 puppeteer 實現操作瀏覽器(以谷歌翻譯為例,免費翻譯無限量文字)Laravel瀏覽器谷歌
- 使用Urllib2製作有道翻譯器
- [翻譯]Building WhatsApp Ui with Flutter Part 2 : The Chat ListUIAPPFlutter
- [翻譯]http2-for-a-faster-web——快速瞭解http2HTTPASTWeb
- Ubuntu安裝劃詞翻譯軟體Goldendict 單詞翻譯 句子翻譯UbuntuGo
- 如何完成中文翻譯日文線上翻譯
- RxJava常用操作符官方文件翻譯及Kotlin示例(1)RxJavaKotlin
- Java實現Web操作介面以及返回資料的翻譯JavaWeb
- 【風農翻譯】開始畫畫素畫 #2
- [翻譯]Spring Boot 特徵參考2——外部配置:下Spring Boot特徵
- 掘金翻譯計劃月報 — 2018 年 2 月
- Quartz.NET 2.x 文件翻譯 - Lesson 2:Jobs 和 Triggersquartz
- Laravel 谷歌翻譯 /Bing 翻譯擴充套件包Laravel谷歌套件
- OpenCV翻譯專案總結二——Mat翻譯OpenCV
- 騰訊互動翻譯的坑爹翻譯
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- 文件翻譯器怎麼用?如何翻譯Word文件?
- 有道雲詞典--翻譯/螢幕取詞翻譯
- TailWind文件翻譯說明以及每日翻譯進度AI
- 碩士英語課後翻譯(unit 2 text B)
- Detectron2-寫模型(Write Models)官方文件中文翻譯模型
- Quartz.NET 2.x 文件翻譯 - Lesson 8:SchedulerListenersquartz
- Quartz.NET 2.x 文件翻譯 - Lesson 9:JobStoresquartz
- Quartz.NET 2.x 文件翻譯-文章目錄quartz
- 翻譯介面整理
- Python 谷歌翻譯Python谷歌
- 翻譯軟體