1. 程式人生 > >【技術分享】最新小編整理離線分析的大資料技術集錦

【技術分享】最新小編整理離線分析的大資料技術集錦

大資料相關體系梳理:今天小夥伴突然問我大資料都學習了些神馬?就有了如下的對話,我也決定為她好好解答一下疑問。so,我們今天主要是以離線資料處理的技術為主。
在這裡插入圖片描述
1、zookeeper
大家知道大資料是對海量資料的處理,對於這種海量的儲存一般就會用到分散式叢集,然而分散式環境下常見的問題比如:叢集管理、統一命名服務,資訊配置管理,分散式鎖等就需要一個技術來處理,這個技術就是zookeeper。zookeeper旨在在分散式應用中,提供可靠的、可擴充套件的、分散式的、可配置的協調機制來管理整個叢集的狀態。他的特性有:資料一致性,原子性,可靠性,實時性,順序性,過半性。
2、Hadoop
Hadoop的集群系統為了解決Nutch的海量資料儲存和處理的需求,可以解決大資料場景下的資料儲存和處理的問題。一開始HDFS和MapReduce是作為Nutch的兩個元件來使用,後來發現這兩個元件不只是可以用在Nutch搜尋,所以就單獨取出來組成了Hadoop由HDFS、MapReduce、yarn組成。hadoopyou其中HDFS:用於分散式檔案的儲存,HDFS為了保證資料儲存的可靠性(複本)和讀取效能(切塊),對資料進行切塊後進行復制(保證複本的數量)並存儲在叢集的多個節點中。HDFS中存在一個名位元組點NameNode和多個數據節點DataNode。MapReduce:用於資料的計算,Yarn:進行任務排程。是Hadoop2.0出現的。資料塊(Block)是HDFS中儲存檔案的最基本的儲存單位。
在這裡插入圖片描述


3、Flume
用於從不同的來源有效收集,聚集和移動大量的日誌資料用以集中式管理的系統。用於從不同的來源有效收集,聚集和移動大量的日誌資料用以集中式管理的系統。一條日誌在flume中會被轉換成一個JSON格式的串來傳遞,這個JSON串就是一個FlumeEvent。Flume Agent是一個基本的日誌收集單元,由Source Channel和 Sink組成。多個Agent之間還可以連線 形成複雜的日誌流動的網路。Source 是消耗外部傳遞給他的事件,外部源將資料按照Flume Source 能識別的格式將Flume事件傳送給Flume Source,Channel是一個被動的儲存,用來保持事件,直到由一個Flume Sink消耗。Sink代表外部資料存放位置。傳送flume中的事件到指定的外部目標。
4、Hive
在對資料處理的時候必須會程式設計,必須對MR的底層實現有深入理解,開發除錯比較麻煩,能不能用一種更加通用的簡單的方式 來實現對海量資料的處理sql,能不能用sql來實現對海量資料的處理 – hive就是這樣的一個工具,HIVE就是在hadoop的基礎上架設了一層sql操作的介面,使我們可以通過類sql的 - hql - 來操作hive,由hive將這些hql語句翻譯成mapreduce來處理海量資料。所以,Hive的底層仍然是MapReduce,Hive主要是做一個翻譯的工作。Hive是基於Hadoop的資料倉庫工具所以Hive並不是一種資料庫。
5、HBase
基於Hadoop資料庫工具,是一種 NoSQL的 非關係型資料庫 不符合關係型資料庫的正規化,適合儲存 半結構化 非結構化的資料,適合儲存稀疏的資料 空的資料不佔用空間,面向列(族)進行儲存,提供實時的增刪改查的能力是一種真正的資料庫產品,可以儲存海量資料效能非常優良可以實現上億條記錄的毫秒級別的查詢,但是不支援嚴格的事務控制只能在行級別保證事務。HBase使用表來儲存資料 但是表的結構和特點和傳統的關係型資料庫有非常大的區別。行鍵 - RowKey:就相當於是HBase表中的主鍵,HBase中的所有的表都要有行鍵,HBase中的所有的資料都要按照行鍵的字典順序排序後儲存,對HBase表中的資料的查詢 只有三種方式:根據指定行鍵查詢、根據指定的行鍵範圍查詢、全表掃描查詢。
6、列族(簇) - ColumnFamily
HBase表中垂直方向儲存資料的結構,列族是HBase表的元資料的一部分,需要在定義HBase表時就指定好表具有哪些個列族,列族中可以包含一個或多個列。列 - Column:HBase表中列族裡可以包含一個或多個列,列並不是HBase表的元資料的一部分,不需要在建立表時預先定義,而是可以在後續使用表時隨時為表的列族動態的增加列。單元格和時間戳 - Cell TimeStamp:在HBase表中,水平方向的行 和 垂直方向的列 交匯 就得到了HBase中的一個儲存單元,而在這個儲存單元中,可以儲存資料,並且可以儲存資料的多個版本,這些個版本之間通過時間戳來進行區分。單元格中的資料都以二進位制形式儲存,沒有資料型別的區別。
7、Phoenix
HBase是一種非關係型的資料庫 不滿足關係型資料庫的正規化 所以無法使用sql 和 JDBC來進行操作,而Phoenix是在HBase基礎上架構的SQL中介軟體,讓我們可以通過SQL/JDBC來操作HBase。本質上就是在HBase表的基礎上,增加一定的限制,穩定表的結構,加入sql翻譯成HBase命令的機制,從而實現了類sql方式操作HBase。親測不太好用,意見僅供參考。
對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系