2015年1月10日 星期六

Data pipeline sample, from Kafka to hive with protocol buffer

前言
Big data analysis之前的data preprocessing是一個複雜的工程, 得處理好比如data的format, lost, volume, integrity, store等等, preprocessing 過程不完善, 會影響後續analysis 的正確性, 再者商業競爭下對於策略分析要求即時性, 隨時從customer的response 來分析, 並重新佈局來面對網路上千變萬化的競爭. 因此Big data從business data一路到analysis platform 並且能即時分析, 整套Big data infrastructure 是一門學問


最近成功部署一套從Kafka data到 Hdfs, 並且可以透過Hive做即時分析
整體的overview 大致上是這樣:



  1. Kafka message queue 是用來讓各個Product Component溝通&傳輸資料, 而資料就是Serialization 物件, serialization格式是Google protocol buffer.
    • 要收集所有Data來分析, 得從所有Data集散地的Kafka message queue下手
    • Kafka中有許多Topic 包含各種Message queue
    • 要能夠有彈性的讀取各種Topic並有結構性的寫到HDFS system, 讓後續的Hive data retrieval 可平行的讀取 
  2. Camus 是一個Linkedin Project 專門讀取Kafka Topic到HDFS
    • Hadoop map-reduce job transfer data form Kafka to hdfs
    • 可自定義當收到kafka byte message後的處理, ex preprocessing, transform, type verifying等等
    • 最後在自定義存到hdfs的檔案格式, 以供hive讀取 
  3. HDFS - Big data warehouse, 平行化的throughput
  4. Elephant-bird - 一個Twitter project 實做protocol buffer parser for Hive 
    • 存取的資料格式為protocol buffer
    • hive 有辦法解析protocol buffer format, 產出table 

整體來說所有的solution都是人家做好的且stable ((自己還是很渺小啊!!
比較花功夫就是在於Camus 寫入到hdfs 並且 Elephant-bird 要能夠成功讀取

關於Camus 的adaption for protocol buffer 這篇

Camus example for Protocol buffer & sequence file format in hdfs

解釋怎麼實做

Elephant-bird 的使用與Hive的Table 建立方式有
Best Practice of Elephant-Bird and Hive with Protocol Buffer當作 example 可參考

End

沒有留言:

張貼留言