原创 Scala簡單入門之變量

Scala是一門神奇的語言,作爲一個JVM上的編譯型語言,它居然有着自己的解釋器(Java其實也有)。例如在shell上面輸入scala就會進入下面的頁面:$ scala Welcome to Scala version 2.10.6 (J

原创 這幾個月讀過的書

今天寫下這幾個月讀過的好書吧。《stream system》(未出中文版) 如果說去年的神作是《Design Data intensive Application》的話,那今年的神作莫過於這本書了。此書首先開篇批評了Lambda架構存在的問

原创 關於英語,也許你忽視了很多東西

這是葛傳槼老先生對英語學習者的教導,通篇用易讀的英文短文講述了英語學習過程中的種種心得,其中“大都是英語語法書和英語修辭學書不曾提到的”,文短而詞豐,言簡而意賅。What to Read 英文的閱讀材料的選擇,不應該選擇那些old的文章,而

原创 Stream SQL簡單入門(PPT推薦)

今天推薦一個寫的很好的PPT,簡單明瞭的敘說了實時的流和數據庫表是怎麼結合起來的,理論基礎是怎樣的,回答了Dataflow模型的四個問題,並且擴展了關係代數,將Steam SQL定義爲時間可變的關係,和如何擴展經典意義上的SQL。

原创 Spanner和一致性(待續)

前幾天讀了一篇文章[一致性模型](https://www.jianshu.com/p/3673e612cce2),發現自己也有也有一些知識點遺漏了,遂寫下此文作爲總結。併發情況下一般會遇上的問題:1. Dirty Write 併發情況下的事

原创 Raft算法導讀

導論Raft算法是管理複製日誌的一致性算法。一致性的算法是讓分佈式系統表現的像單機系統一樣,即使系統中有一些機器損壞了,也一樣可以正常運行。Raft設計出來是爲了實現工程上的可用,避免Paxos算法的複雜性,從In Search of an

原创 Stream和Table的聯繫

傳統的Table領域和目前的Stream領域看似橫亙着不可跨越的鴻溝,類似於經典力學和量子力學,但Stream和Table的依然存在着相關性。在研究這個理論之前,先回顧下什麼是Table?一張Table是一堆擁有行列性質的數據,每一行都有着

原创 日誌採集技術筆記

核心概念核心:將數據從源端投遞到目的端的程序目的端:具備數據訂閱功能的集中存儲 源端:普通的文本文件,通過網絡接收到的日誌數據日誌採集模式:推和拉推:日誌採集Agent主動從源端取得數據後發送給目的端 拉:目的端主動向日誌採集Agent獲取

原创 Apache Kafka設計理念探究

動機創造一個分佈式的實時流處理平臺,也正是因爲這個原因,Kafka選擇了將日誌分區和消費者羣組模型。持久化日誌的持久化依賴於文件系統,而文件系統的處理速度,在往常的觀念裏,應該是相當慢的。但是依賴於pagecache-centric des

原创 如何設計一個良好的流系統?(上)

引論streaming system有兩篇經典博客:streaming 101和streaming 102,深刻的描述了流系統的精髓和對未來的展望,這篇文章權當一個導讀的作用。概念streaming 101對流計算的概念做了澄清,並表示Da

原创 如何設計一個良好的流系統?(下)

概念在Streaming 101中,作者引入了窗口和時間的概念,在本文中,作者爲了解決流處理系統無法精確的處理結果的問題,提出了下面三個概念:Watermarks:爲了解決處理結果的完整性,也就是說,保證流處理系統確確實實把某個窗口的輸入數

原创 Apache Beam研究

介紹Apache Beam是Google開源的,旨在統一批處理和流處理的編程範式,核心思想是將批處理和流處理都抽象成Pipeline、Pcollection、PTransform三個概念。Apache Beam本身是不具備計算功能的,數據的

原创 Apache Kafka核心概念入門

簡介Apache Kafka是一款基於日誌的消息系統,後來Kafka發展成爲了一個“distributed streaming platform”,包含了消息系統,存儲系統和流處理系統三個功能。核心特性:發佈訂閱模式的消息系統持久化存儲(c