原创 PageRank算法理論篇

      PageRank算法是Google最核心的算法,用於給每個網頁價值評分,是Google“在垃圾中找黃金”的關鍵算法,這個算法成就了今天的Google。       最早的搜索引擎採用的是“分類目錄”的方法,即通過人工對

原创 Sqoop原理篇

1 Sqoop簡介       Apache Sqoop(SQL-to-Hadoop)項目旨在協助RDBMS與Hadoop之間進行高效的大數據交流。用戶可以在 Sqoop 的幫助下,輕鬆地把關係型數據庫的數據導入到 Hadoop

原创 Spark原理篇之工作原理

1 Spark背景       Spark是一個加州大學伯克利分校(UC Berkeley AMP)開發的一個分佈式數據快速分析項目。它的核心技術是彈性分佈式數據集(Resilient distributed datasets),

原创 Spark原理篇之RDD特徵分析講解

      RDD(Resilient Distributed DataSets)彈性分佈式數據集,是分佈式內存的一個抽象概念。我們可以抽象地代表對應一個HDFS上的文件,但是它實際上是被分區的,分爲多個分區灑落在Spark集羣中

原创 Hive的DDL和DML相關理論和實戰

1 數據庫 (1)創建數據庫 CREATE DATABASE [IF NOT EXISTS] financials; (2)查看數據庫列表 SHOW DATABASES; SHOW DATABASES LIKE ‘h.*’;

原创 Flink的容錯機制

1 狀態一致性       當在分佈式系統中引入狀態時,自然引入了一致性問題。一致性實際上是“正確性級別”的另一種說法,也就是說在成功處理故障並恢復之後得到的結果,與沒有發生任何故障時得到的結果相比,前者到底有多正確?舉例來說,假

原创 Flink的Process Function

      之前熟悉的流處理API中的轉換算子是無法訪問事件的時間戳信息和水位線信息的。例如:MapFunction這樣的map轉換算子就無法訪問時間戳或者當前事件的時間。然而,在一些場景下,又需要訪問這些信息。基於此,DataS

原创 詳解Flink中的狀態管理

      流式計算分爲無狀態和有狀態兩種情況。無狀態的計算觀察每個獨立事件,並根據最後一個事件輸出結果。例如:流處理應用程序從傳感器接收溫度讀數,並在溫度超過90度時發出警告。有狀態的計算則會基於多個事件輸出結果。例子如下:  

原创 Flink中的時間語義與Watermark

1 Flink中的時間語義 1.1 基本概念       在Flink的流式處理中,會涉及到時間的不同概念,如下圖: 圖1 Flink時間概念       Event Time:是事件創建的時間。它通常由事件中的時間戳描述,例如

原创 詳解Flink中的Window

1 Window 1.1 Window概述       流式計算是一種用於處理無限數據集的數據處理引擎,而無線數據集是指一種不斷增長的無限的數據集,而Window是一種將無限數據集切割爲有限塊進行處理的手段。       Wind

原创 詳解Flink流處理API

      Flink流處理流程:首先創建環境(類似於spark裏的上下文SparkContext);其次,添加數據來源Source;再次,對數據進行Transform處理;最後,添加輸出Sink。       準備兩個文件he

原创 流式計算的演進與Flink流式計算的特點

1 流處理的演變       (1)傳統數據處理架構 圖1 傳統事務處理架構(OLTP)       在傳統事務處理架構中,主要面向的對象是業務系統。首先,事件觸發每個業務應用;然後,業務應用讀寫遠程事務型數據庫;最後,業務應用

原创 詳解Flink運行架構

1 Flink運行時的組件       Flink運行時架構主要包括四個不同的組件,它們會在運行流處理應用程序時協同工作:作業管理器(JobManager)、資源管理器(ResourceManager)、任務管理器(TaskMan

原创 Spark原理篇之Spark SQL

1 Spark SQL背景       Spark SQL是從Shark發展而來的。Shark爲了實現Hive兼容,在HQL方面重用了Hive中的HQL的析、邏輯執行計劃翻譯和執行計劃優化等邏輯可以近似認爲僅將物理執行計劃從MR作

原创 Flume原理篇

1 Flume簡介       Flume是Cloudera提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,