原创 Spark RCFile的那些“坑”

RCFile在平臺的應用場景中多數用於存儲需要“長期留存”的數據文件,在我們的實踐過程中,RCFile的數據壓縮比通常可以達到8 : 1或者10 : 1,特別適用於存儲用戶通過Hive(MapReduce)分析的結果。目前平臺的計算引擎

原创 Camus導入中文亂碼問題(源碼修改、編譯、部署、任務啓動)

Camus使用過程中業務方反映從Kafka導入至HDFS中的數據有中文亂碼問題,且業務方確認寫入的數據編碼爲UTF-8,開始跟進。 問題重現: (1)編寫代碼將帶有中文的字符串以編碼UTF-8寫入Kafka的某個

原创 DIP開放計算平臺介紹

隨着平臺業務的發展,依賴於Portal(Web)構建的服務架構已逐漸不能滿足現有的一些複雜需求(如:使用Hive SQL無法完成計算邏輯),而且對於一些具備編程能力的程序員或數據分析師而言,能夠自主控制任務的訴求越來越多,這就要求我們必

原创 Hadoop Yarn內存資源隔離實現原理——基於線程監控的內存隔離方案

注:本文以hadoop-2.5.0-cdh5.3.2爲例進行說明。 Hadoop Yarn的資源隔離是指爲運行着不同任務的“Container”提供可獨立使用的計算資源,以避免它們之間相互干擾。目前支持兩種類型的資源隔離:CPU和

原创 Spark PySpark數據類型的轉換原理—Writable Converter

Spark目前支持三種開發語言:Scala、Java、Python,目前我們大量使用Python來開發Spark App(Spark 1.2開始支持使用Python開發Spark Streaming App,我們也準備嘗試使用Pytho

原创 Spark RDD Persistence

Spark最爲重要的特性之一就是可以在多個操作(Action)之間,將一個或多個RDD關聯的數據集(Dataset)以分區(Partition)爲單位進行持久化(Persist)或緩存(Cache),存儲介質通常是內存(Memory)。

原创 Hive JSON數據處理的一點探索

背景 JSON是一種輕量級的數據格式,結構靈活,支持嵌套,非常易於人的閱讀和編寫,而且主流的編程語言都提供相應的框架或類庫支持與JSON數據的交互,因此大量的系統使用JSON作爲日誌存儲格式。 使用Hive分析數據(

原创 Spark SQL JSON數據處理

背景 這一篇可以說是“Hive JSON數據處理的一點探索”的兄弟篇。 平臺爲了加速即席查詢的分析效率,在我們的Hadoop集羣上安裝部署了Spark Server,並且與我們的Hive數據倉庫共享元數據。也就是說,我們的用

原创 Spark Streaming fileStream實現原理

fileStream是Spark Streaming Basic Source的一種,用於“近實時”地分析HDFS(或者與HDFS API兼容的文件系統)指定目錄(假設:dataDirectory)中新近寫入的文件,dataDirect

原创 Spark使用CombineTextInputFormat緩解小文件過多導致Task數目過多的問題

目前平臺使用Kafka + Flume的方式進行實時數據接入,Kafka中的數據由業務方負責寫入,這些數據一部分由Spark Streaming進行流式計算;另一部分數據則經由Flume存儲至HDFS,用於數據挖掘或機器學習。HDFS存