中國IDC圈1月19日報道:數(shù)據(jù)科學(xué)是未來,大數(shù)據(jù)分析則是打開未來之門的鑰匙
企業(yè)正在迅速用新技術(shù)武裝自己以便從大數(shù)據(jù)項目中獲益。各行業(yè)對大數(shù)據(jù)分析人才的需求也迫使我們升級自己的技能以便尋找更好的職業(yè)發(fā)展。
跳槽之前最好先搞清楚一個崗位會接觸到的項目類型,這樣你才能掌握所有需要的技能,工作的效率也會更高。
下面我們盡量列出了一些流行的開源大數(shù)據(jù)項目。根據(jù)它們各自的授權(quán)協(xié)議,你或許可以在個人或者商業(yè)項目中使用這些項目的源代碼。寫作本文的目的也就是為大家介紹一些解決大數(shù)據(jù)相關(guān)問題可能會用到的工具。
1.Apache Mahout
我們可以使用Apache Mahout來快速創(chuàng)建高效擴展性又好的機器學(xué)習(xí)應(yīng)用。Mahout結(jié)合了諸如H2O算法、Scala、Spark和Hadoop MapReduce等模塊,為開發(fā)人員提供了一個構(gòu)建可擴展算法的環(huán)境?,F(xiàn)在最新的版本是去年11月6日發(fā)布的0.11.1版本。
Apache Mahout支持一個叫做Samsara的數(shù)學(xué)環(huán)境,用戶可以在Samsara中使用它提供的常見算法來開發(fā)自己的數(shù)學(xué)解決方案。Samsara對于線性代數(shù)、數(shù)據(jù)結(jié)構(gòu)和統(tǒng)計操作都有著很好的支持,而且可以通過Scala的Mahout擴展或Mahout庫來進行定制。Samara對很多常見算法都進行了重寫因此速度上有一定的提升。這里我們能列出的一些算法包括:樸素貝葉斯分類器、矩陣分解、協(xié)同過濾以及神經(jīng)網(wǎng)絡(luò)。新加入的相似性分析還可以通過分析用戶的點擊來實現(xiàn)共現(xiàn)推薦算法。
2.Apache Spark
Apache Spark是一個為實時大數(shù)據(jù)分析所設(shè)計的開源數(shù)據(jù)處理引擎。目前Spark的大用戶有雅虎、騰訊和百度,使用Spark處理的數(shù)據(jù)在PB級別,集群節(jié)點數(shù)目也超過8000。Apache Spark是GitHub上最大的數(shù)據(jù)處理項目之一,有超過750名開發(fā)人員都曾對項目做出過貢獻。
與Hadoop MapReduce相比Apache Spark在內(nèi)存中的運行速度快100倍,在硬盤中運行速度的差距也在10倍以上。Spark能夠達到這樣的速度靠的是DAG引擎和內(nèi)存內(nèi)計算性能的提升。開發(fā)語言可以使用Java、Python、Scala和R,此外Spark還提供了差不多100種集合操作符以便開發(fā)人員構(gòu)建并行應(yīng)用。
Apache Spark為機器學(xué)習(xí)、Spark Streaming和GraphX提供了眾多強大的庫,其中也包括為DataFrame和SQL所設(shè)計的庫。開發(fā)人員可以用這些標(biāo)準(zhǔn)庫來提升應(yīng)用的性能和開發(fā)效率。Spark可以運行于很多環(huán)境中,如獨立的集群、Hadoop YARN、EC2和Apache Mesos。Apache Spark也能從Hive、HBase、Tachyon、Cassandra和HDFS等數(shù)據(jù)源讀取數(shù)據(jù)。
3.Apache Storm
Apache Storm的設(shè)計針對的是流式數(shù)據(jù),不過對于大數(shù)據(jù)的實時分析它也是很可靠的計算系統(tǒng)。它同樣是一個開源項目而且開發(fā)人員可以使用所有的主流高級語言。Apache Storm主要用于以下應(yīng)用:在線機器學(xué)習(xí)、連續(xù)計算、實時分析、ETL、分布式RPC。Apache Storm有配置方便、可用性高、容錯性好及擴展性好等諸多優(yōu)點,處理速度也極快,每個節(jié)點每秒可以處理數(shù)百萬個tuple。
目前最新的Apache Storm是去年11月5日發(fā)布的0.9.6版。
Storm集群中有三種節(jié)點:Nimbus、Zookeeper和Supervisor。Nimbus與Hadoop的JobTracker類似,主要用于運算的上傳、代碼的分發(fā)和計算的監(jiān)測。Zookeeper節(jié)點的作用是Storm集群的協(xié)調(diào),Supervisor節(jié)點則是實現(xiàn)對worker的控制。
4.NTLK(自然語言處理工具箱)
NTLK是用于開發(fā)Python自然語言相關(guān)應(yīng)用的一個工具包。它自帶用于斷句、分類、標(biāo)記、詞干提取、語義推理和語法分析的庫,此外還有一個較為活躍的社區(qū)。對于語言學(xué)的實證研究、人工智能、認知科學(xué)、機器學(xué)習(xí)和信息提取來說都是強大的工具,當(dāng)然你得用Python。
自動補全是NTLK可能的用處之一。輸入部分文字,借助NTLK可以推測可能的完整句子,現(xiàn)在很多搜索引擎都有這個功能。其他可能的應(yīng)用還包括文本歸類、地址分析和智能語音命令等。
5.mLoss
mLoss是機器學(xué)習(xí)開源軟件的英文縮寫,它將很多開源軟件集合到了同一個平臺。mLoss所收集的開源項目都經(jīng)過審閱并附有對項目的簡短介紹。mLoss本身并不是一個軟件而是一個支持機器學(xué)習(xí)應(yīng)用開源的網(wǎng)站。
mLoss網(wǎng)站上列出的開源軟件有各自項目不同的48種授權(quán)協(xié)議,作者數(shù)量高達1100人。mLoss是到目前為止最大的機器學(xué)習(xí)軟件庫,共支持107種數(shù)據(jù)類型,所涉及的操作系統(tǒng)有26個,使用的編程語言也有51種。