一、學習大數據需要的基礎
java SE,EE(SSM)90%的大數據框架都是java寫的
MySQL
SQL on Hadoop
Linux
大數據的框架安裝在Linux操作系統上
二、需要學什麼
第一方面:大數據離線分析
一般處理T+1數據Hadoop 2.X:(common、HDFS、MapReduce、YARN)
環境搭建,處理數據的思想
Hive:
大數據數據倉庫
通過寫SQL對數據進行操作,類似於mysql數據庫中的sql
HBase
基於HDFS的NOSQL數據庫
面向列的存儲
協作框架:
sqoop(橋樑:HDFS 《==》RDBMS)
flume:收集日誌文件中信息
調度框架anzkaban,瞭解:crotab(Linux自帶)、zeus(Alibaba)、Oozie(cloudera)
擴展前沿框架:
kylin、impala、ElasticSearch(ES)
注意:關於第一方面的內容我的另一篇博客有詳細的總結(是我搜索大量網上資料所得,可以幫你省下不少時間)
第二方面:大數據實時分析
以spark框架爲主Scala:OOP + FP
sparkCore:類比MapReduce
sparkSQL:類比hive
sparkStreaming:實時數據處理
kafka:消息隊列
前沿框架擴展:flink
阿里巴巴 blink
第三方面:大數據機器學習(擴展)
spark MLlib:機器學習庫pyspark編程:Python和spark的結合
推薦系統
python數據分析
Python機器學習
大數據框架安裝功能來劃分
海量數據存儲:
HDFS、Hive(本質存儲數據還是hdfs)、HBASE、ES
海量數據分析:
MapReduce、Spark、SQL
最原始的Hadoop框架
數據存儲:HDFS(Hadoop Distributed File System)
數據分析:MapReduce
Hadoop的起源
Google的三篇論文
雖然Google沒有公佈這三個產品的源碼,
但是他發佈了這三個產品的詳細設計論文,
奠定了風靡全球的大數據算法的基礎!
Google FS HDFS
MapReduce MapReduce
BigTable HBase
將任務分解然後在多臺處理能力較弱的計算節點中同時處理,然後將結果合併從而完成大數據處理。
google:android,搜索,大數據框架,人工智能框架
pagerank
Hadoop介紹
大數據絕大多數框架,都屬於Apache頂級項目
http://apache.org/
hadoop官網:
http://hadoop.apache.org/
分佈式
相對於【集中式】
需要多臺機器,進行協助完成。
元數據:記錄數據的數據
架構:
主節點Master 老大,管理者
管理
從節點Slave 從屬,奴隸,被管理者
幹活
Hadoop也是分佈式架構
common
HDFS:
主節點:NameNode
決定着數據存儲到那個DataNode上
從節點:DataNode
存儲數據
MapReduce:
分而治之思想
將海量的數據劃分爲多個部分,每部分數據進行單獨的處理,最後將所有結果進行合併
map task
單獨處理每一部分的數據、
reduce task
合併map task的輸出
YARN:
分佈式集羣資源管理框架,管理者集羣的資源(Memory,cpu core)
合理調度分配給各個程序(MapReduce)使用
主節點:resourceManager
掌管集羣中的資源
從節點:nodeManager
管理每臺集羣資源
總結:Hadoop的安裝部署
都屬於java進程,就是啓動了JVM進程,運行服務。
HDFS:存儲數據,提供分析的數據
NameNode/DataNode
YARN:提供程序運行的資源
ResourceManager/NodeManager