本文主要從技術層面探討大數據目前的現狀以及面臨的挑戰。在此之前,如果你對大數據的概念還比較模糊,可閱讀什麼是大數據一文瞭解。 如何定義大數據 目前我們已經瞭解到,大數據是由於數據量的巨大增長而產生的。所以,“大數據”一詞主要描述的是規模巨大的混合數據集,這種數據集是結構化與非結構化數據的融合。 通常 ...
本文主要從技術層面探討大數據目前的現狀以及面臨的挑戰。在此之前,如果你對大數據的概念還比較模糊,可閱讀什麼是大數據一文瞭解。
如何定義大數據
目前我們已經瞭解到,大數據是由於數據量的巨大增長而產生的。所以,“大數據”一詞主要描述的是規模巨大的混合數據集,這種數據集是結構化與非結構化數據的融合。
通常,大數據的特征是通過3V來解釋的,即體積、速度和多樣性。
體積是大數據的第一大特征。所有領先的社交媒體網站都在不停地產生大量的數據,以太位元組/千位元組為單位。
第二個是速度,它通常指的是接收數據和處理數據的速度。當前,互聯網上每天接收的數據約為2.5億兆位元組。
第三個是多樣性。它主要指的是收集數據的來源比較多樣,以及數據的結構、類別也比較多樣。我們常見的文本、視頻、圖像是不同類別的一些類型。
除此之外,大數據其他流行的特征是準確性、價值和可變性。
大數據的類別
大數據通常被分為三個不同的類別:結構化、半結構化和非結構化。
結構化:結構化並非指的是容易接受、存儲和處理的數據。而是預先知道其格式的數據。譬如說保存在資料庫中的特定表的值。
非結構化:任何來源不確定且未格式化的數據都是非結構化數據。在這裡,數據有不同的獨立來源,數據集包括了文字、視頻和音頻記錄等等。我們最常見的例子是谷歌、百度等搜索引擎門戶顯示的所有搜索結果。
半結構化:顧名思義,它指的是結構化和非結構化數據的聚合。這是一個已定義好格式的數據,但沒有存儲在任何關係資料庫系統當中。譬如說保存在XML文件中的一種數據就是半結構化數據。
用什麼管理大數據
用什麼管理如此規模的大數據,一直是個很大的難點。目前最常用的高效管理大量數據的開源計算引擎是Hadoop,它是Apache基金會所開發的分散式系統基礎架構。
Hadoop由HDFS (Hadoop分散式文件系統)和MapReduce Engine兩個主要組件組成。
Hadoop的生態系統則分為了3個部分:
Hadoop Common: Apache基礎的一些公用的庫,可以被生態系統中的其他組件使用。
HDFS (Hadoop Distributed File System):一個分散式數據存儲系統,它以更高效的方式存儲所有數據塊,並採用跨不同集群的數據複製概念,以實現可靠和輕鬆的數據訪問。
它主要由兩個組件組成:名稱節點(NameNode)和數據節點(DataNode)。它採用了主-從原理,其中名稱節點是主節點,負責整個分散式文件系統的元數據(MetaData)的管理,Data節點作為從節點,負責文件數據的存儲和讀寫操作。
MapReduce(分散式並行計算框架):MapReduce是一個分散式的資源調度和離線並行計算框架,是處理所有數據集的地方。
MapReduce將大數據集分解成更小的數據集,採用分而治之的策略,以便更高效地處理它們。
它的基本工作機制是,使用“Map”方法將任務發送到Hadoop集群中的不同節點進行處理,“Reduce”方法將所有處理結果合併起來,保證數據最終的整體有效性。
大數據技術面臨的挑戰
數據存儲:由於數據的規模在短時間內迅速增加,數據存儲和分析整理依然是最核心的難點。
數據提煉:這是整個過程中最繁瑣的任務,也是最大的挑戰。分析提煉如此大量的數據是一項艱難的任務,從大量數據中提煉出最有價值的部分,是一個更艱難的任務。這甚至影響到了大數據未來的發展。
網路安全風險:大數據還會帶來額外的安全漏洞風險。目前來看,擁有如此龐大數據的公司正成為網路犯罪的主要目標。
原文鏈接:http://pythonjishu.com/status-quo-and-challenges/