原创 JVM垃圾回收知識彙總

什麼是垃圾回收 java程序運行期間生成新對象,加載類文件都需要佔用內存,不同對象從被創建,使用,存儲到最後使用完畢被銷燬都有一個完整的生命週期,java程序開發人員實際上只需要負責對象的創建使用,對象的銷燬回收由虛擬機自動完成,對象的

原创 數據庫事務和鎖

數據庫的事務指的是一組業務處理邏輯,這組邏輯處理要求要麼都成功要麼都失敗(原子性),執行前數據和執行後數據狀態總是一致的(一致性),事務之間的處理不會互相影響(隔離性),事務執行完畢之後數據必須持久化了()。一個具體的數據庫產品會用一些

原创 網絡傳輸粘包的處理

粘包產生的原因 1.發送端數據由於nagle算法,將多個業務數據包壓成一個TCP包發送 2.接收端數據緩衝區讀數據一次讀入了多個包的數據   拆包產生原因: 1.發送端由於消息超過了MSS(最大報文段長度)限制大小被拆成多個TCP報文發

原创 系統拆分的幾個考慮點

系統龐大之後需要考慮拆分,考慮的點基於如下幾個,是否將一個模塊拆分出來獨立成子系統 可以按照下面的幾個要素進行打分評估: 1.業務邏輯相關性:高內聚低耦合的模塊可以相互獨立,這個是前提; 2.模塊獨立是否可以提高系統整體的複用性; 3.

原创 倒排索引和正排索引的優化點

搜索系統中對於索引和字典的存儲主要面臨兩大挑戰: 1.數據壓縮 2.快速地檢索和排序   正排表的存儲有如下兩個點來壓縮數據: 1.正排表詞在在DOC中出現的爲止採用單調遞增差分存儲,這樣存儲這個數字序列的時候可以用儘可能少的字節數來存

原创 標準差(standar deviation)和標準誤(standar error)

在日常的統計分析中,標準差和標準誤是一對十分重要的統計量,兩者有區別也有聯繫。但是很多人卻沒有弄清其中的差異,經常性地進行一些錯誤的使用。對於標準差與標準誤的區別,很多書上這樣表達:標準差表示數據的離散程度,標準誤表示抽樣誤差的大小。這

原创 t統計量和z統計量

z統計和t統計可以用來檢驗兩個平均數之間差異顯著的程度,z適合大樣本的情況(樣本數大於30),t適合小樣本的情況。 z檢驗的步驟: 第一步:建立虛無假設 H0:μ1 = μ2 ,即先假定兩個平均數之間沒有顯著差異,   第二步:計算統計

原创 DB redo undo日誌筆記

redo log: 1.用戶對DB數據的修改過程是先將數據讀取到內存緩存-->修改內存中的值-->寫redo日誌落盤-->返回結果給用戶,由此可以看出redo日誌主要作用是提高讀寫效率,減少對磁盤的隨機寫,可以合併對db中的某一數據的多

原创 Combiner 出現的問題

使用了combiner來聚合mapper端一些數據,發現個詭異的問題,輸出到reducer端的數據總是時好時壞, 找了兩天終於發現原來combiner可能會在mapper端多次執行,如果mapper端數據比較大,combiner可能就會

原创 網絡吞吐量的估算

在寫數據傳輸程序的時候我們會關心服務器和客戶端之間通信的網絡延遲有多大?數據收發的吞吐量最大有多少?   tcp socket 客戶端和服務端之間的通信延遲受到很多因素影響,基本沒辦法準確的估算出來,比如傳輸距離,網絡路由跳數,交換機處

原创 迴歸算法的學習路徑

在學習迴歸算法過程中,一路遇到不少問題,數學和算法方面的基礎薄弱,因此採用的策略是深度優先的學習方法,從頭到腳看算法,遇到不懂的概念就跳轉如相關概念或算法的學習。 1.線性迴歸基本算法思想 2.正態分佈:其中的隨機誤差符合正態分佈 3.

原创 hadoop JOB的性能優化實踐

使用了幾個月的hadoopMR,對遇到過的性能問題做點筆記,這裏只涉及job的性能優化,沒有接觸到 hadoop集羣,操作系統,任務調度策略這些方面的問題。 hadoop MR在做大數據量分析時候有限的計算資源情況下只能不斷的優化程序。

原创 數據分析中的分詞

數據分析的其中一個步驟是對輸入內容分詞,內容中可能含有垃圾詞或 無意義詞或分詞分錯的,因此用停用詞詞典和幾個正則表達式進行過濾, 之前處理的量級大約是10G這個量級,處理速度挺好。   這次增加很多數據源,處理量級上升到1T級別,這些分析

原创 tf-idf的問題

傳統的tf-idf計算需要有4個MR完成,其中計算逆向文檔頻率時候對於文檔數在百萬級別以下的,中間數據可以直接放內存的hashmap,但是文檔數千萬或上億,可能會導致內存溢出,這時候計算方式要不同,把|d|的數量單獨輸出,增加一個步驟把|

原创 加載distribute cache過大

爲了節省一步join的MR,使用distribute cache把小文件加載到內存,分析的數據實在過大,導致特徵詞統計的小文件也可能要達到600M左右,解決辦法兩種:1.調整數據結構,減少內存中的數據條數;2.改用join的方式加載入數據