1、Java編程技術
Java編程技術是大數據學習的基礎,Java是一種強類型語言,擁有極高的跨平臺能力,能夠編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序等,是大數據工程師最喜歡的編程工具,所以,想學好大數據,掌握Java基礎是必不可少的。
2、Hadoop
HDFS: 分佈式存儲系統,包含NameNode,DataNode。NameNode:元數據,DataNode。DataNode:存數數據。
yarn: 能夠理解爲MapReduce的協調機制,本質就是Hadoop的處理分析機制,分爲ResourceManager NodeManager。
MapReduce: 軟件框架,編寫程序。
Hive: 數據倉庫 能夠用SQL查詢,能夠運行Map/Reduce程序。用來計算趨勢或者網站日誌,不該用於實時查詢,須要很長時間返回結果。
HBase: 數據庫。很是適合用來作大數據的實時查詢。Facebook用Hbase存儲消息數據並進行消息實時的分析
ZooKeeper: 針對大型分佈式的可靠性協調系統。Hadoop的分佈式同步等靠Zookeeper實現,例如多個NameNode,active standby切換。
Sqoop: 數據庫相互轉移,關係型數據庫和HDFS相互轉移
Mahout: 可擴展的機器學習和數據挖掘庫。用來作推薦挖掘,彙集,分類,頻繁項集挖掘。
Chukwa: 開源收集系統,監視大型分佈式系統,創建在HDFS和Map/Reduce框架之上。顯示、監視、分析結果。
Ambari: 用於配置、管理和監視Hadoop集羣,基於Web,界面友好。
3、Linux命令
對於大數據開發一般是在Linux環境下進行的,相比Linux操做系統,Windows操做系統是封閉的操做系統,開源的大數據軟件很受限制,所以,想從事大數據開發相關工做,還需掌握Linux基礎操做命令。
4、storm
Storm: 分佈式,容錯的實時流式計算系統,能夠用做實時分析,在線機器學習,信息流處理,連續性計算,分佈式RPC,實時處理消息並更新數據庫。
Kafka: 高吞吐量的分佈式發佈訂閱消息系統,能夠處理消費者規模的網站中的全部動做流數據(瀏覽,搜索等)。相對Hadoop的日誌數據和離線分析,能夠實現實時處理。目前經過Hadoop的並行加載機制來統一線上和離線的消息處理
Redis: 由c語言編寫,支持網絡、可基於內存亦可持久化的日誌型、key-value型數據庫。
5、Spark
Scala: 一種相似java的徹底面向對象的編程語言。
jblas:一個快速的線性代數庫(JAVA)。基於BLAS與LAPACK,矩陣計算實際的行業標準,並使用先進的基礎設施等全部的計算程序的ATLAS藝術的實現,使其很是快。
Spark: Spark是在Scala語言中實現的相似於Hadoop MapReduce的通用並行框架,除了Hadoop MapReduce所具備的優勢,但不一樣於MapReduce的是job中間輸出結果能夠保存在內存中,從而不須要讀寫HDFS,所以Spark能更好的適用於數據挖掘與機器學習等須要迭代的MapReduce算法。能夠和Hadoop文件系統並行運做,用過Mesos的第三方集羣框架能夠支持此行爲。
Spark SQL: 做爲Apache Spark大數據框架的一部分,可用於結構化數據處理並能夠執行相似SQL的Spark數據查詢
Spark Streaming: 一種構建在Spark上的實時計算框架,擴展了Spark處理大數據流式數據的能力。
Spark MLlib: MLlib是Spark是經常使用的機器學習算法的實現庫,目前(2014.05)支持二元分類,迴歸,聚類以及協同過濾。同時也包括一個底層的梯度降低優化基礎算法。MLlib以來jblas線性代數庫,jblas自己以來遠程的Fortran程序。
Spark GraphX: GraphX是Spark中用於圖和圖並行計算的API,能夠在Spark之上提供一站式數據解決方案,能夠方便且高效地完成圖計算的一整套流水做業。
Fortran: 最先出現的計算機高級程序設計語言,普遍應用於科學和工程計算領域。
BLAS: 基礎線性代數子程序庫,擁有大量已經編寫好的關於線性代數運算的程序。
LAPACK:著名的公開軟件,包含了求解科學與工程計算中最多見的數值線性代數問題,如求解線性方程組、線性最小二乘問題、特徵值問題和奇異值問題等。
ATLAS: BLAS線性算法庫的優化版本。
Spark: Spark是由scala語言編寫的,可是爲了推廣和兼容,提供了java和python接口。
6、Python
Python是面向對象的編程語言,擁有豐富的庫,使用簡單,應用普遍,在大數據領域也有所應用,主要可用於數據採集、數據分析以及數據可視化等,所以,大數據開發需學習必定的Python知識。
人生苦短,我用Python
7、雲計算平臺
Docker: 開源的應用容器引擎
kvm: (Keyboard Video Mouse)
openstack: 開源的雲計算管理平臺項目
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)