離線分析的大數據技術集錦

離線分析的大數據技術集錦

大數據相關體系梳理:今天小夥伴突然問我大數據都學習了些神馬?就有了如下的對話,我也決定為她好好解答一下疑問。so,我們今天主要是以離線數據處理的技術為主。

在這裡我還是要推薦下我自己建的大數據學習交流qq裙: 957205962, 裙 裡都是學大數據開發的,如果你正在學習大數據 ,小編歡迎你加入,大家都是軟件開發黨,不定期分享乾貨(只有大數據開發相關的),包括我自己整理的一份2018最新的大數據進階資料和高級開發教程,歡迎進階中和進想深入大數據的小夥伴

1、zookeeper

大家知道大數據是對海量數據的處理,對於這種海量的存儲一般就會用到分佈式集群,然而分佈式環境下常見的問題比如:集群管理、統一命名服務,信息配置管理,分佈式鎖等就需要一個技術來處理,這個技術就是zookeeperzookeeper旨在在分佈式應用中,提供可靠的、可擴展的、分佈式的、可配置的協調機制來管理整個集群的狀態。他的特性有:數據一致性,原子性,可靠性,實時性,順序性,過半性。

Hadoop

Hadoop的集群系統為了解決Nutch的海量數據存儲和處理的需求,可以解決大數據場景下的數據存儲和處理的問題。一開始MapReduceNutch的兩個組件來使用,後來發現這兩個組件不只是可以用在Nutch搜索,所以就單獨取出來組成了HadoopMapReducehadoopyou:用於分佈式文件的存儲,為了保證數據存儲的可靠性和讀取性能,對數據進行切塊後進行復制保證複本的數量並存儲在集群的多個節點中。中存在一個名字節點NameNode和多個數據節點DataNodeMapReduce:用於數據的計算,:進行任務調度。是Hadoop2.0出現的。數據塊(Block中存儲文件的最基本的存儲單位。

Flume

用於從不同的來源有效收集,聚集和移動大量的日誌數據用以集中式管理的系統。用於從不同的來源有效收集,聚集和移動大量的日誌數據用以集中式管理的系統。一條日誌在flume中會被轉換成一個格式的串來傳遞,這個串就是一個FlumeEventFlume Agent是一個基本的日誌收集單元,由Source Channel組成。多個Agent之間還可以連接形成複雜的日誌流動的網絡。Source 是消耗外部傳遞給他的事件,外部源將數據按照Flume Source 能識別的格式將Flume事件發送給Flume Source,Channel是一個被動的存儲,用來保持事件,直到由一個Flume Sink消耗。Sink代表外部數據存放位置。發送flume中的事件到指定的外部目標。

在對數據處理的時候必須會編程,必須對的底層實現有深入理解,開發調試比較麻煩,能不能用一種更加通用的簡單的方式來實現對海量數據的處理,能不能用來實現對海量數據的處理 -- hive就是這樣的一個工具,hadoop的基礎上架設了一層操作的接口,使我們可以通過類 - hql - 語句翻譯成mapreduce來處理海量數據。所以,的底層仍然是MapReduce要是做一個翻譯的工作。Hive是基於Hadoop的數據倉庫工具所以Hive並不是一種數據庫。

HBase

Hadoop數據庫工具,是一種 NoSQL非關係型數據庫不符合關係型數據庫的範式,適合存儲非結構化的數據適合存儲稀疏的數據空的數據不佔用空間提供實時的增刪改查的能力是一種真正的數據庫產品可以存儲海量數據性能非常優良可以實現上億條記錄的毫秒級別的查詢但是不支持嚴格的事務控制只能在行級別保證事務。HBase使用表來存儲數據但是表的結構和特點和傳統的關係型數據庫有非常大的區別。行鍵 - RowKey:就相當於是HBase表中的主鍵,HBase中的所有的表都要有行鍵,HBase中的所有的數據都要按照行鍵的字典順序排序後存儲,對HBase表中的數據的查詢只有三種方式:根據指定行鍵查詢、根據指定的行鍵範圍查詢、全表掃描查詢。

在這裡我還是要推薦下我自己建的大數據學習交流qq裙: 957205962, 裙 裡都是學大數據開發的,如果你正在學習大數據 ,小編歡迎你加入,大家都是軟件開發黨,不定期分享乾貨(只有大數據開發相關的),包括我自己整理的一份2018最新的大數據進階資料和高級開發教程,歡迎進階中和進想深入大數據的小夥伴

) - ColumnFamily

HBase表中垂直方向保存數據的結構,列族是HBase表的元數據的一部分,需要在定義HBase表時就指定好表具有哪些個列族,列族中可以包含一個或多個列。列 - ColumnHBase表中列族裡可以包含一個或多個列,列並不是HBase表的元數據的一部分,不需要在創建表時預先定義,而是可以在後續使用表時隨時為表的列族動態的增加列。單元格和時間戳 - Cell TimeStampHBase表中,水平方向的行垂直方向的列HBase中的一個存儲單元,而在這個存儲單元中,可以存儲數據,並且可以保存數據的多個版本,這些個版本之間通過時間戳來進行區分。單元格中的數據都以二進制形式存儲,沒有數據類型的區別。

Phoenix

HBase是一種非關係型的數據庫不滿足關係型數據庫的範式所以無法使用來進行操作,而PhoenixHBase基礎上架構的中間件,讓我們可以通過SQL/JDBCHBase。本質上就是在HBase表的基礎上,增加一定的限制,穩定表的結構,加入HBase命令的機制,從而實現了類HBase。親測不太好用,意見僅供參考。

以上就是離線數據分析的主要技術,下一期,將會為大家介紹實時數據分析技術等。


分享到:


相關文章: