原创 redis 初識

Redis是什麼? Redis是一個以鍵值對形式存儲的NoSql數據庫,它的所有數據都存儲在內存中,並且可以將內存中的數據持久化到磁盤上。它可以用作數據庫、緩存系統和消息代理等。它支持5種數據結構String、List、Hash、Set、

原创 Flume 初識

Flume是什麼? Flume是一個分佈式、可靠的、高可用的、適合海量數據的日誌收集系統,用於收集、聚合和移動來自多個不同數據源的大量日誌數據到一個集中存儲中。 工作機制 它是怎麼做到把多個不同數據源的數據傳輸到另一個集中存儲中的呢? 首

原创 MapReduce的容錯機制

Failures 在現實世界中,難免遇到用戶代碼錯誤、進程崩潰、機器宕機等情況。使用Hadoop的一個好處是它有能力處理這些失敗,使你的job能夠成功完成。我們需要考慮以下實體的失敗:task、application master、nod

原创 聲明式編程和命令式編程的比較

先統一一下概念,我們有兩種編程方式:命令式和聲明式。   我們可以像下面這樣定義它們之間的不同: 命令式編程:命令“機器”如何去做事情(how),這樣不管你想要的是什麼(what),它都會按照你的命令實現。聲明式編程:告訴“機器”

原创 MapReduce 的Types 和 Formats

MapReduce有一種簡單的數據處理模型:map和reduce的輸入和輸出都是key-value鍵值對。下面來看下各種格式的數據在該模型中的使用。 MapReduce Types Hadoop MapReduce的map函數和red

原创 Java byte轉int時爲什麼要與0xff進行與運算?

先來看個栗子: byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ;               for (int i = 0; i <

原创 Druid 集羣體系架構

一個Druid集羣包含多個不同類型的節點,這些節點被設計用來執行特定的操作。不同類型的節點相互獨立,即使某個節點不可用,對其他節點也不會有太大影響,數據仍然可用。 節點類型主要有: Real-time Nodes:負責實時數據的攝取和索

原创 Kafka 爲什麼比其它的消息系統快?

Kafka的消息是保存或緩存在磁盤上的,你可能會認爲:在磁盤上讀寫數據是會降低性能的,因爲尋址會比較消耗時間。事實上,磁盤讀寫的快慢取決於你怎麼使用它了(順序讀寫、隨機讀寫)。 Kafka的設計目標是高吞吐量,它比其它消息系統快的原因體現

原创 Storm Trident

Strom Trident是什麼? Trident 是對Storm 原語(原語是指由若干條指令組成的,用於完成一定功能的一個過程)的一個抽象,它可以讓你對一個Topology表達爲“做什麼,what”(聲明式),而不是“如何做,how”(

原创 ZooKeeper 分佈式鎖

大家也許都很熟悉了多個線程或者多個進程間的共享鎖的實現方式了,但是在分佈式場景中我們會面臨多個Server之間的鎖的問題,實現的複雜度比較高。利用基於google chubby原理開發的開源的zookeeper,可以使得這個問題變得簡單很

原创 Druid Broker Nodes

Druid集羣的Broker節點主要負責客戶端請求的路由和合並查詢結果返回給客戶端。Broker節點在啓動時會加載zookeeper中segment的位置信息,在客戶端請求到來時,會根據這些segment的位置信息,將請求路由到響應的hi

原创 storm 初識

Storm是什麼? Storm是一個分佈式的實時流處理框架。 “實時”怎麼理解? “實時”一般指的是near real-time(近實時),即系統對特定事件處理的響應時間對終端用戶沒有明顯的延遲,通常響應時間爲毫秒級別。對於Storm來說

原创 Kafka 初識

Kafka是什麼? Kafka是一個高吞吐量的、分佈式的消息發佈-訂閱系統,官網解釋爲一個分佈式的、可分區的、可複製的的提交日誌服務。具有如下特性: 1、通過O(1)的磁盤數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠

原创 Druid Historical Node

Druid的Historical 節點主要負責加載深存儲中或Real-time節點創建的不可變數據塊(segment),這些節點不會相互感知,只知道如何加載(load)、刪除(drop)、和操作segment。 Historical 節點

原创 JNDI

JNDI 是什麼 JNDI是 Java 命名與目錄接口(Java Naming and Directory Interface),在J2EE規範中是重要的規範之一,不少專家認爲,沒有透徹理解JNDI的意義和作用,就沒有真正掌握J2EE