一、大數據簡述
在互聯技術飛速發展過程中,越來越多的人融入互聯網。也就意味着各個平台的用戶所產生的數據也越來越多,可以說是爆炸式的增長,以前傳統的數據處理的技術已經無法勝任了。比如淘寶,每天的活躍用戶量是很大的一個數目。馬雲之前說過某個省份的女性bar的size最小問題,不管是玩笑還什么,細想而知,基於淘寶用戶的購物記錄確實可以分析出來。
對企業的用戶數據進行分析,可以知道公司產品的運營情況,比方說一個APP的用戶每天登陸了幾乎都沒有什么實質性的操作,那就說明這個玩意兒已經快涼了,程序員趕快可以跑路了。
每個人登錄哪些電商網站的首頁都是不一樣,這后面就是根據用戶的近期瀏覽或者關注的,根據這些來生成推送每個人關注的商品。
對於這些海量的數據的處理分析所誕生的技術,也就是大數據。
對於這些數據兩個核心點,一個如何存儲,另一個就是怎么使用。
相關的技術:
存儲框架:
HDFS——分布式文件存儲系統(HADOOP生態中的存儲框架)
HBASE——分布式數據庫系統
KAFKA——分布式消息緩存系統(實時流式數據處理場景中應用廣泛)
運算框架:(要解決的核心問題就是幫用戶將處理邏輯在很多機器上並行)
MAPREDUCE—— 分布式計算(HADOOP中的運算框架)
SPARK —— 離線批處理/實時流式計算
STORM —— 實時流式計算
其他框架:
HIVE —— 數據倉庫工具:可以接收sql,翻譯成mapreduce或者spark程序運行
FLUME——數據采集
SQOOP——數據遷移
ELASTIC SEARCH —— 分布式的搜索引擎
.......
.......
.......
二、HDFS簡述
hadoop中有3個核心組件:
分布式文件系統:HDFS —— 實現將文件分布式存儲在很多的服務器上
分布式運算編程框架:MAPREDUCE —— 實現在很多機器上分布式並行運算
分布式資源調度平台:YARN —— 幫用戶調度大量的mapreduce程序,並合理分配運算資源
HDFS---分布式文件系統,相當於就是一個目錄樹,一層一層的,這個是虛擬的出來一個結構,由HDFS管理,並不能實際看見,只能通過客戶端去訪問的時候可以看見這些結構。
1.一個數據在HDFS上面存儲的時候會根據大小來進行分塊,被分塊之后,存放在多個機器上面(data node),比如一個512M的文件,如果按照128M來分,就會被分成4塊,然后
存儲到4個節點上。
2.一般來說為了保證數據的高可用,我們會把同一個數據塊備份到不同的節點上面,某個節點掛了,還可以在其他節點上面找到數據。意思就說數據塊A既會在A機器上存儲,也會在機器B上面存儲一份,甚至更多的備份。
3.分塊存儲之后怎么直到數據存在哪些機器上呢,這個時候就需要一個管理者來記錄這些數據信息(name node)
也就是說一個HDFS系統是由name node服務器和多個data node服務組成