<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                zookeeper服務器會產生三類日志:事務日志、快照日志和log4j日志。   在zookeeper默認配置文件zoo.cfg(可以修改文件名)中有一個配置項dataDir,該配置項用于配置zookeeper快照日志和事務日志的存儲地址。在官方提供的默認參考配置文件zoo_sample.cfg中,只有dataDir配置項。其實在實際應用中,還可以為事務日志專門配置存儲地址,配置項名稱為dataLogDir,在zoo_sample.cfg中并未體現出來。在沒有dataLogDir配置項的時候,zookeeper默認將事務日志文件和快照日志文件都存儲在dataDir對應的目錄下。建議將事務日志(dataLogDir)與快照日志(dataLog)單獨配置,因為當zookeeper集群進行頻繁的數據讀寫操作是,會產生大量的事務日志信息,將兩類日志分開存儲會提高系統性能,而且,可以允許將兩類日志存在在不同的存儲介質上,減少磁盤壓力。 log4j用于記錄zookeeper集群服務器運行日志,該日志的配置地址在conf/目錄下的log4j.properties文件中,該文件中有一個配置項為“zookeeper.log.dir=.”,表示log4j日志文件在與執行程序(zkServer.sh)在同一目錄下。當執行zkServer.sh 時,在該文件夾下會產生zookeeper.out日志文件。下面主要介紹事務日志與快照日志。 事務日志 事務日志指zookeeper系統在正常運行過程中,針對所有的更新操作,在返回客戶端“更新成功”的響應前,zookeeper會保證已經將本次更新操作的事務日志已經寫到磁盤上,只有這樣,整個更新操作才會生效。   根據上文所述,可以通過zoo.cfg文件中的dataLogDir配置項找到事物日志存儲地點: dataDir=/home/kafka/data/zookeeper 在datalog/目錄下存在一個文件夾version-2,該文件夾中保存著事物日志文件: log.504e25800 日志文件的命名規則為log.**,文件大小為64MB,**表示寫入該日志的第一個事務的ID,十六進制表示。 事務日志可視化 zookeeper的事務日志為二進制文件,不能通過vim等工具直接訪問。其實可以通過zookeeper自帶的jar包讀取事務日志文件。 首先將libs中的slf4j-api-1.6.1.jar文件和zookeeper根目錄下的zookeeper-3.4.9.jar文件復制到臨時文件夾tmplibs中,然后執行如下命令,將日志內容輸出至a.txt文件中: java -classpath .:slf4j-api-1.6.1.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.LogFormatter /home/kafka/data/zookeeper/version-2/log.504e25800 > a.txt ![](https://box.kancloud.cn/0372e4ca4cab472b6e1ffac33830e4a3_550x107.png) **日志分析** 第一行:ZooKeeper Transactional Log File with dbid 0 txnlog format version 2 上面的代碼分析中有說到每個日志文件都有一個這就是那里所說的日志頭,這里magic沒有輸出,只輸出了dbid還有version; 第二行:15-8-12 下午03時59分53秒 session 0x14f20ea71c10000 cxid 0x0 zxid 0x1 createSession 4000這也就是具體的事務日志內容了,這里是說xxx時間有一個sessionid為0x14f20ea71c10000、cxid為0x0、zxid 為0x1、類型為createSession、超時時間為4000毫秒 第三行:15-8-12 下午03時59分54秒 session 0x14f20ea71c10000 cxid 0x1 zxid 0x2 create ‘/solinx0000000000,#736f6c696e78,v{s{31,s{‘world,’anyone}}},F,1sessionID 為0x14f20ea71c10000,cxid:0x01、zxid:0x02、創建了一個節點路徑為:/solinx0000000000、節點內容 為:#736f6c696e78(經過ASCII,實際內容為solinx)、acl為world:anyone任何人都可以管理該節點、節點不是 ephemeral節點的、父節點子版本:1 第四行:15-8-12 下午04時15分56秒 session 0x14f20ea71c10000 cxid 0x0 zxid 0x3 closeSession null這里是說xxx時間有一個sessionid為0x14f20ea71c10000、cxid為0x0、zxid為0x3、類型為 closeSession **快照日志**   zookeeper的數據在內存中是以樹形結構進行存儲的,而快照就是每隔一段時間就會把整個DataTree的數據序列化后存儲在磁盤中,這就是zookeeper的快照文件。   zookeeper快照日志的存儲路徑同樣可以在zoo.cfg中查看,如上文截圖所示。訪問dataDir路徑可以看到version-2文件夾: dataDir=/home/kafka/data/zookeeper zookeeper快照文件的命名規則為snapshot.**,其中**表示zookeeper觸發快照的那個瞬間,提交的最后一個事務的ID。 與日志文件一樣Zookeeper也為快照文件提供了可視化的工具org.apache.zookeeper.server包中的SnapshotFormatter類,接下來就使用該工具輸出該事務日志文件,并解釋該數據; SnapshotFormatter工具的使用方法: java -classpath .:slf4j-api-1.6.1.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.SnapshotFormatter /home/kafka/data/zookeeper/version-2/snapshot.501154259 |more ![](https://box.kancloud.cn/3c9f6eee884360380314a2f1a7588f03_327x470.png) ![](https://box.kancloud.cn/2e81dce19acd35f7cbba4d7e92edd355_380x72.png) **快照分析** 快照文件就很容易看得懂了,這就是Zookeeper整個節點數據的輸出; 第一行:ZNode Details (count=11):ZNode節點數總共有11個 /cZxid = 0x00000000000000 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = 0x00000000000000 mtime = Thu Jan 01 08:00:00 CST 1970 pZxid = 0x00000000000016 cversion = 7 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x00000000000000 dataLength = 0 這么一段數據是說,根節點/: cZxid:創建節點時的ZXID ctime:創建節點的時間 mZxid:節點最新一次更新發生時的zxid mtime:最近一次節點更新的時間 pZxid:父節點的zxid cversion:子節點更新次數 dataVersion:節點數據更新次數 aclVersion:節點acl更新次數 ephemeralOwner:如果節點為ephemeral節點則該值為sessionid,否則為0 dataLength:該節點數據的長度 快照文件的末尾: Session Details (sid, timeout, ephemeralCount): 0x14f211584840000, 4000, 0 0x14f211399480001, 4000, 0 這里是說當前抓取快照文件的時間Zookeeper中Session的詳情,有兩個session超時時間都是4000毫秒ephemeral節點為0; 日志清理   在zookeeper 3.4.0以后,zookeeper提供了自動清理snapshot和事務日志功能,通過配置zoo.cfg下的autopurge.snapRetainCount和autopurge.purgeInterval這兩個參數實現日志文件的定時清理。   autopurge.snapRetainCount這個參數指定了需要保留的文件數目,默認保留3個;   autopurge.purgeInterval這個參數指定了清理頻率,單位是小時,需要填寫一個1或者更大的數據,默認0表示不開啟自動清理功能。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看