Kafka元數據異常導致業務異常應急恢復方案

      網友投稿 1303 2022-05-28

      6.5.x。

      執行擴容操作,進行數據遷移在數據遷移過程中由于Kafka節點故障,導致Kafka Topic元數據處于紊亂狀態,導致無法進行讀寫操作。

      例如:

      Topic:O_PS_SEQ_DATA_BUSI_CRD,其中Partition:289, ISR列表為26,29;Leader為26;Replicas列表為10,6。當需要訪問Partition 289時,獲取Leader為26,則客戶端連接26進行讀寫請求。

      通過Kafka自身攜帶的console-consumer進行數據消費,可以發現元數據紊亂,導致consumer無法正常消費,提示fetch offsets for partition failed due to obsolete leadership infomation。

      Kafka服務異常。

      生產者無法發送數據到Kafka。

      消費者無法從Kafka中消費數據。

      恢復時長與數據量相關。

      操作影響較大,需要提前研發進行溝通確認,與各方達成一致后方可實施。

      執行修復之前,必須先準備好如下信息:

      序號

      項目

      操作方式

      1

      集群賬號信息

      申請集群admin賬戶的密碼。

      2

      節點賬號信息

      申請集群內節點的omm、root用戶密碼。

      3

      SSH遠程登錄工具

      準備PuTTY或SecureCRT等工具。

      4

      客戶端

      已提前安裝好客戶端

      針對這種情況,采用對異常Partition重新reassign的方式來進行處理。

      根據partition的分布和leader,然后去leader節點上確認leader上的源數據存在,再找一個磁盤空間相對充裕的節點,把有問題的partition重分配到原來的leader節點和一個新的節點上。

      執行命令,進入客戶端安裝目錄,例如“/opt/client”。

      cd /opt/client

      執行命令,配置環境變量。

      source bigdata_env

      如果集群采用了安全版本,要進行安全認證。

      kinit admin

      根據提示輸入正確的用戶密碼。

      [root@mgtdat-sh-3-01-3 client]#source bigdata_env #配置環境變量 [root@mgtdat-sh-3-01-3 client]#kinit admin #設置kinit認證 Password for admin@HADOOP.COM:

      執行Kafka相關命令,獲取Topic分布信息和副本同步信息,觀察返回結果。

      kafka-topics.sh

      --describe

      --zookeeper

      例如:

      [root@mgtdat-sh-3-01-3 client]#kafka-topics.sh --describe --zookeeper 10.149.0.90:24002/kafka Topic:topic1 PartitionCount:2 ReplicationFactor:2 Configs: Topic: topic1 Partition: 0 Leader: 26 Replicas: 23,25 Isr: 26 Topic: topic1 Partition: 1 Leader: 24 Replicas: 24,23 Isr: 24,23

      其中,Replicas對應副本分布信息,Isr對應副本同步信息。

      如果Topic Partition對應的Leader中Broker的id不在Replicas(副本)列表中。

      該Partition為異常Partition,需要通過重新reassign進行修復。

      手工創建遷移Json文件,內容為需要移動的topic和信息,文件保存為expand-cluster-reassignment.json。

      生成的expand-cluster-reassignment.json放置在客戶端安裝目錄。

      根據partition的分布和leader,然后去leader節點上確認leader上的源數據存在,再找一個磁盤空間相對充裕的節點,把有問題的partition重分配到原來的leader節點和一個新的節點上(非Replicas中節點)。

      根據上述規則,生成遷移Json文件。

      例如:

      {"version":1, "partitions":[{"topic":"topic1","partition":0,"replicas":[26,30]}]}

      其中26為partition的原來的leader, 30為磁盤相對充裕的節點,且不是Replicas中的節點。

      根據手工生成的Partitions分布情況執行重分布。

      kafka-reassign-partitions.sh

      --zookeeper

      --reassignment-json-file

      --execute

      例如:

      [root@mgtdat-sh-3-01-3 client]#kafka-reassign-partitions.sh --zookeeper 10.149.0.90:24002/kafka --reassignment-json-file /opt/client/expand-cluster-reassignment.json --execute Current partition replica assignment {"version":1,"partitions":[{"topic":"topic1","partition":1,"replicas":[23,25]},{"topic":"topic1","partition":0,"replicas":[26,30]}]} Save this to use as the --reassignment-json-file option during rollback Successfully started reassignment of partitions {"version":1,"partitions":[{"topic":"topic1","partition":0,"replicas":[26,30]}]}

      命令會打印Topic Partitions原始分布情況和新的分布情況。

      確認Partitions重分布執行結果。

      kafka-reassign-partitions.sh

      --zookeeper

      --reassignment-json-file

      --verify

      例如:

      Kafka元數據異常導致業務異常應急恢復方案

      [root@mgtdat-sh-3-01-3 client]#kafka-reassign-partitions.sh --zookeeper 10.149.0.90:24002/kafka --reassignment-json-file /opt/client/expand-cluster-reassignment.json --verify Status of partition reassignment: Reassignment of partition [topic1,0] completed successfully

      執行命令,進入客戶端安裝目錄,例如“/opt/client”。

      cd /opt/client

      執行命令,配置環境變量。

      source bigdata_env

      如果集群采用了安全版本,要進行安全認證。

      kinit admin

      根據提示輸入正確的用戶密碼。

      [root@mgtdat-sh-3-01-3 client]#source bigdata_env #配置環境變量 [root@mgtdat-sh-3-01-3 client]#kinit admin #設置kinit認證 Password for admin@HADOOP.COM:

      執行Kafka相關命令,獲取Topic分布信息和副本同步信息,觀察返回結果。

      kafka-topics.sh

      --describe

      --zookeeper

      例如:

      [root@mgtdat-sh-3-01-3 client]#kafka-topics.sh --describe --zookeeper 10.149.0.90:24002/kafka Topic:topic1 PartitionCount:2 ReplicationFactor:2 Configs: Topic: topic1 Partition: 0 Leader: 26 Replicas: 26,30 Isr: 26,30 Topic: topic1 Partition: 1 Leader: 24 Replicas: 24,23 Isr: 24,23

      其中,Replicas對應副本分布信息,Isr對應副本同步信息。

      根據遷移Partition,找到Partition信息,其中Replicas信息和遷移方案一致,則說明遷移成功。

      待某Topic的所有異常Partition均已完成修復,可以通過消費者進行數據消費,從而進行Topic狀態測試。

      不同版本消費者命令不同,請根據版本確定執行命令。

      FusionInsight HD V100R002C50SPC20*

      kafka-console-consumer.sh

      --topic

      --zookeeper

      --from-beginning

      [root@10-10-10-11 client]#kafka-console-consumer.sh --topic topic1 --zookeeper 10.149.0.90:24002/kafka --from-beginning 1 2 3

      其中,1 ,2 ,3為Topic中消息信息。

      FusionInsight HD 6.5.0版本

      kafka-console-consumer.sh

      --topic

      -- bootstrap-server

      --new-consumer < consumer.properties >

      --from-beginning

      例如:

      [root@10-10-10-11 client]#kafka-console-consumer.sh --topic topic1 --bootstrap-server 10.149.0.90:21007 --new-consumer --consumer.config /opt/client/Kafka/kafka/config/consumer.properties --from-beginning 1 2 3

      其中,1 ,2 ,3為Topic中消息信息

      EI企業智能 FusionInsight Kafka

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:為什么表數據刪掉一半,表文件大小不變?
      下一篇:《TypeScript圖形渲染實戰:2D架構設計與實現》 —3.2 Application類及其子類
      相關文章
      911精品国产亚洲日本美国韩国 | 久久精品国产亚洲7777| 亚洲三级在线免费观看| 亚洲成色999久久网站| 亚洲人成中文字幕在线观看 | 亚洲黄色在线电影| 亚洲一区二区三区四区在线观看| 亚洲精品无码乱码成人| 亚洲综合伊人久久综合| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲伊人成无码综合网| 国产亚洲精品免费视频播放| 国产亚洲精品免费视频播放| 亚洲中文字幕无码久久2017| 狠狠色伊人亚洲综合成人| 亚洲国产精品无码中文字| 香蕉视频在线观看亚洲| 亚洲天堂中文字幕| 亚洲美女aⅴ久久久91| 亚洲欧洲日产v特级毛片| 亚洲伊人久久大香线蕉啊| 亚洲女人初试黑人巨高清| 亚洲一区二区三区国产精品无码| 亚洲香蕉久久一区二区| 亚洲精华国产精华精华液好用 | 亚洲AV无码国产精品永久一区| 久久亚洲AV无码西西人体| 久久久久亚洲av毛片大| 亚洲午夜久久久影院| 亚洲av无码专区国产乱码在线观看 | 亚洲国产成人AV在线播放| 久久精品熟女亚洲av麻豆 | 久久水蜜桃亚洲AV无码精品| 亚洲AV无码一区二区三区在线观看 | 亚洲国产精品乱码在线观看97| 中文字幕 亚洲 有码 在线| 亚洲第一第二第三第四第五第六| 亚洲第一页综合图片自拍| 中文字幕一精品亚洲无线一区| 亚洲欧洲日产国码av系列天堂| 亚洲av女电影网|