一.Hive應用場景
本文主要講述使用 Hive 的實踐,業務不是關鍵,簡要介紹業務場景,本次的任務是對搜索日志數據進行統計分析。
集團搜索剛上線不久,日志量並不大 。這些日志分布在 5 台前端機,按小時保存,並以小時為周期定時將上一小時產生的數據同步到日志分析機,統計數據要求按小時更新。這些統計項,
包括關鍵詞搜索量 pv ,類別訪問量,每秒訪問量 tps 等等。
基於 Hive ,我們將這些數據按天為單位建表,每天一個表,后台腳本根據時間戳將每小時同步過來的 5 台前端機的日志數據合並成一個日志文件,導入 Hive 系統,每小時同步的日志數據
被追加到當天數據表中,導入完成后,當天各項統計項將被重新計算並輸出統計結果。
以上需求若直接基於 hadoop 開發,需要自行管理數據,針對多個統計需求開發不同的 map/reduce 運算任務,對合並、排序等多項操作進行定制,並檢測任務運行狀態,工作量並不小。但
使用 Hive ,從導入到分析、排序、去重、結果輸出,這些操作都可以運用 hql 語句來解決,一條語句經過處理被解析成幾個任務來運行,即使是關鍵詞訪問量增量這種需要同時訪問多天數
據的較為復雜的需求也能通過表關聯這樣的語句自動完 成,節省了大量工作量。
二.hbase應用場景
1、爬蟲網站URL的寫入。
2、淘寶在2011年之前所有的后端持久化存儲基本上都是在mysql上進行的(不排除少量oracle/bdb/tair/mongdb等),mysql由於開源,並且生態系統良好,本身擁有分庫分表等多種解決方案,因此很長一段時間內都滿足淘寶大量業務的需求。
但是由於業務的多樣化發展,有越來越多的業務系統的需求開始發生了變化。一般來說有以下幾類變化:
數據量變得越來越多,事實上現在淘寶幾乎任何一個與用戶相關的在線業務的數據量都在億級別,每日系統調用次數從億到百億都有,且歷史數據不能輕易刪除。這需要有一個海量分布式文件系統,能對TB級甚至PB級別的數據提供在線服務
數據量的增長很快且不一定能准確預計,大多數應用系統從上線起在一段時間內數據量都呈很快的上升趨勢,因此從成本的角度考慮對系統水平擴展能力有比較強烈的需求,且不希望存在單點制約
只需要簡單的kv讀取,沒有復雜的join等需求。但對系統的並發能力以及吞吐量、響應延時有非常高的需求,並且希望系統能夠保持強一致性
通常系統的寫入非常頻繁,尤其是大量系統依賴於實時的日志分析
希望能夠快速讀取批量數據
三.總結
hive大數據計算,基於reducemap
hbase大數據存儲,寫入和讀取