起源
不管是國內,國外的招聘目前數據分析工程師,或者是大數據工程師我感覺都是處于啟蒙階段,對于數據分析或者大數據沒有什么體系技術棧一說,相比于前后端,除了高端互聯網企業其他的企業招數據分析工程師我認為目前都是 Python 工程師,但是大數據工程師究竟需要什么技術棧,科班出生我來結合自己的理解講解下。
大數據?
數據庫相信大家都不陌生,那么什么是大數據?其實就是大量數據顧名思義,傳統數據在幾 KB,幾 GB,幾 T 這其實都不是大數據范疇。100T 以上甚至 PB 級別的數據就可以稱為大數據了。
但是傳統的數據庫中存放的數據都是結構化數據,但是大數據處理的數據,因為數據來源不同,有結構化和非結構化兩種。這就引出了一個數據倉庫的概念。它整合來自多個不同來源的數據,支持復雜查詢和分析任務。目前有很多公司都在做,以后的所有數據就從數據倉庫中進行提取,然后再放到應用中。
Hadoop項目組件
Hadoop是一個開源框架,允許在計算機集群上以簡單的編程模型分布式處理大數據集。其關鍵組件包括:
- Ambari: 一個基于Web的工具,用于配置、管理和監控Apache Hadoop集群。它提供了一個用戶友好的界面來管理配置和監控服務及性能。
- ZooKeeper: 提供分布式協調服務,如配置維護、同步和組服務。
- HBase: 一個分布式、可擴展的大數據存儲,基于Google的Bigtable并用Java編寫。
- Hive: 一個數據倉庫基礎設施,提供數據匯總和即席查詢。
- Pig: 一個高層平臺,用于創建在Apache Hadoop上運行的程序,主要用于分析大數據集。
- Mahout: 一個設計為可擴展到大數據集的機器學習庫。
- MapReduce: 一個用于處理和生成大數據集的編程模型,通過集群上的并行分布式算法實現。
- YARN (Yet Another Resource Negotiator): 在集群中管理資源并用于調度用戶的應用程序。
- HDFS (Hadoop Distributed File System): 設計在商品硬件上運行的分布式存儲系統。
- Flume: 一個高效收集、聚合和移動大量日志數據的服務。
- Sqoop: 一個設計用于在Apache Hadoop和結構化數據存儲如關系數據庫之間高效傳輸大量數據的工具。
Hadoop的發展歷程
Hadoop的發展歷程標志著幾個重要的里程碑:
- 2008年: 淘寶開始研究基于Hadoop的系統。
- 2009年3月: Cloudera推出包括Hadoop的Cloudera Distribution (CDH)。
- 2009年7月: Hadoop Core項目更名為Hadoop Common。
- 2012年11月: Apache Hadoop 1.0發布。
- 2018年4月: Apache Hadoop 3.1發布。
Apache Hadoop的歷史
Apache Hadoop框架源自以下項目:
- Apache Lucene (2001) -> Apache Nutch (2002): 早期項目專注于文本搜索和網頁爬蟲。
- HDFS (2004): Hadoop分布式文件系統,從Nutch項目中衍生而來。
- MapReduce (2004): 由Google引入,成為Hadoop處理大數據集的核心組件。
MapReduce
MapReduce是處理大數據集的核心概念,通過分布式算法實現:
- 函數: 由兩個主要函數組成 - Map和Reduce。
- 核心思想: “分而治之” - 通過將任務拆分成更小的子任務來處理大數據集。
- 設計理念: 通過將計算指向數據來實現可靠性。
大數據的特征
大數據由三個主要特征定義:
- 數量 (Volume): 數據規模,通常在100TB以上,甚至達到PB級別。
- 種類 (Variety): 數據形式多樣,包括文本、音頻、圖像和視頻,不限于傳統的關系數據。
- 速度 (Velocity): 數據生成和處理的速度。
大數據分析
大數據分析涵蓋各種方法和技術:
● 數據分析
● 文本分析
● 數據挖掘
● 圖像和語音識別
● 機器學習
● 可視化技術
● 自然語言處理
● 深度學習
數據采集與分析層
大數據涉及結構化和非結構化數據的采集,然后利用Hadoop等平臺提供的計算層進行分析。
通過理解這些組成部分和原理,可以有效利用大數據來驅動洞察和創新。