- 前言:工欲善其事,必先利其器。倘若不懂得構(gòu)建一套大數(shù)據(jù)挖掘環(huán)境,何來(lái)談Data Mining!何來(lái)領(lǐng)悟“Data Mining Engineer”中的工程二字!也僅僅是在做數(shù)據(jù)分析相關(guān)的事罷了!

插曲:封筆約138天,一方面是由于換了方向,跳到了互金行業(yè),有調(diào)整期。一方面是途中體驗(yàn)了下在線直播,嘗嘗鮮。但的確難忍想寫(xiě)點(diǎn)文字的癮,說(shuō)出來(lái)連自個(gè)都不信,反正我今天要解癮了,不過(guò)也是為了拉個(gè)票。
- 說(shuō)明:這篇文章,我給101分。除非某些讀者壓根沒(méi)想踏進(jìn)大數(shù)據(jù)領(lǐng)域,再或者僅僅是做一些運(yùn)營(yíng)上的數(shù)據(jù)分析,這樣的話,直接點(diǎn)下鏈接,幫我投個(gè)票就去玩兒吧,投票地址,選擇3號(hào)。相反,倘若是致力于在大數(shù)據(jù)領(lǐng)域做數(shù)據(jù)挖掘工程師,服務(wù)于線上數(shù)據(jù)產(chǎn)品的有志青年。咋們太有猿糞了。此文來(lái)自于筆者在實(shí)踐項(xiàng)目開(kāi)發(fā)中的記錄,真心希望日后成為所有進(jìn)入大數(shù)據(jù)領(lǐng)域挖掘工程師們的良心參考資料。(多的這一分,還是情懷),下面是它的一些說(shuō)明:
- 它是部署在Windows環(huán)境,在項(xiàng)目的實(shí)踐開(kāi)發(fā)過(guò)程中,你將通過(guò)它去完成與集群的交互,測(cè)試和發(fā)布;
- 你可以部署成使用MapReduce框架,而本文主要優(yōu)先采用Spark版本;
- 于你而言,它更多意義在于提高你在個(gè)人主機(jī)上進(jìn)行業(yè)務(wù)場(chǎng)景建模的效率,方便你對(duì)算法模型進(jìn)行測(cè)試和優(yōu)化,以及打包、提交任務(wù)。
- 于我而言,網(wǎng)絡(luò)上各種魚(yú)龍混雜的資料,一方面是內(nèi)容誤導(dǎo)新人,更缺乏資源整合,一方面僅僅是搬運(yùn)工,缺乏實(shí)踐項(xiàng)目中的開(kāi)發(fā)經(jīng)驗(yàn),有頭無(wú)尾。這更是這篇文章的初衷。
鋪墊:數(shù)據(jù)挖掘工程師是一個(gè)公司編制為數(shù)不多的崗位(你也許懂~)。對(duì)于新人,如果它是你的目標(biāo),你需要真正理解“挖掘”和“工程”的關(guān)聯(lián)性和重要性,缺一不可;也希望你能區(qū)分它與分析師的差異性;更期待你能夠知曉這個(gè)崗位在數(shù)據(jù)產(chǎn)品里的角色性,因?yàn)檫@些對(duì)于你如何去成為一位數(shù)據(jù)挖掘工程師來(lái)說(shuō),很重要!
- 說(shuō)完上面這些雜七雜八的伏筆,下文我將深入仔細(xì)去引導(dǎo)你,如何去搭建屬于自己Spark版本的Data Mining環(huán)境,以及某些環(huán)節(jié)在實(shí)踐項(xiàng)目中開(kāi)發(fā)的必要性。
第一步 : Java安裝和配置(1.7或者1.8)
- 理由:這是必須要去部署的環(huán)境,不解釋。不過(guò)注意區(qū)分版本、以及個(gè)人主機(jī)是32位還是64位;
- 下載:本文提供1.8版本的下載 ,其中32位下載,64位下載;
- 安裝配置:
- 1.【安裝】:點(diǎn)擊軟件進(jìn)行安裝,按照引導(dǎo)步驟,并指定安裝目錄(個(gè)人喜愛(ài)),本文選擇默認(rèn)安裝路徑;
-
2.【配置】:配置環(huán)境變量JAVA_HOME和路徑PATH,選擇我的電腦>系統(tǒng)屬性>高級(jí)系統(tǒng)設(shè)置>環(huán)境變量;
jdk安裝路徑

a.新建JAVA_HOME,為C:\Program Files\Java\jdk1.8.0_20。
b.新建CLASSPATH,為“.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;”
c.編輯Path,添加“;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin”
考慮到有不少讀者非軟件專(zhuān)業(yè),因此這里沒(méi)有一筆帶過(guò)基本的軟件安裝。最終安裝成功的顯示如下所示:

第二步 : IDE安裝和配置(Eclipse或者Spring Tool Suite)
- 理由:編寫(xiě)工程代碼的集成環(huán)境,也就是你寫(xiě)代碼的地兒。注意IDE區(qū)分版本、以及個(gè)人主機(jī)是32位還是64位;
- 下載:本文提供最新STS版本的下載 ,其中32位下載,64位下載。也可以使用Eclipse或SBT;
- 安裝配置:
- 1.將安裝包下載放在選定目錄,進(jìn)行解壓就可以了,并創(chuàng)建桌面快捷方式,方便以后使用;

在后期使用IDE時(shí),考慮到個(gè)人有代碼潔癖,因此,我都推薦先設(shè)置好這幾點(diǎn):a.字體大小和類(lèi)型,b.縮進(jìn)方式,c.代碼行數(shù)序號(hào);
第三步 : IDE插件的加載
- 理由:編寫(xiě)MapReduce/Spark工程需要的插件,注意區(qū)分hadoop版本。
- 下載:本文提供hadoop2.6.0版本的插件 ,其中下載地址
- 安裝配置:
- 1.將Jar包放在STS目錄,位置于\sts-bundle\sts-3.8.1.RELEASE\dropins下;
第四步 : Maven的安裝配置
- 理由:開(kāi)發(fā)實(shí)踐數(shù)據(jù)挖掘項(xiàng)目,更多采用Maven進(jìn)行項(xiàng)目管理。
- 下載:本文提供兩個(gè)版本的下載 ,其中3.3.3下載,3.3.9下載
- 安裝配置:
- 1.將安裝包解壓放在指定目錄,設(shè)置全局變量M2_HOME和添加路徑PATH;


第五步 : hadoop包的下載配置
- 理由:代碼執(zhí)行過(guò)程中依賴(lài)hadoop的環(huán)境,需要單獨(dú)配置hadoop的執(zhí)行路徑。
- 下載:本文提供2.6.0版本的下載 ,其中下載地址
- 安裝配置:
- 1.將安裝包解壓放在指定目錄,設(shè)置全局變量HADOOP_HOME和添加路徑PATH;

第六步 : hadoop插件的加載配置
- 理由:代碼執(zhí)行過(guò)程中依賴(lài)hadoop的JAR插件,需要單獨(dú)編譯或者下載,放置在上述hadoop解壓包的bin目錄下。
- 下載:本文提供2.6.0版本的插件下載 ,其中32位,64位
- 安裝配置:
- 1.將安裝包解壓放在指定目錄,將hadoop.dll和winutils.exe放在hadoop的bin目錄下就可以了;

第七步 : spark包的下載配置
- 理由:代碼執(zhí)行過(guò)程中依賴(lài)spark的配置環(huán)境,需要下載包放置在指定目錄,并設(shè)置全局變量和路徑。
- 下載:本文提供spark-1.6.2-bin-hadoop2.6版本的插件下載 ,其中下載地址
- 安裝配置:
- 1.將安裝包解壓放在指定目錄,設(shè)置全局變量SPARK_HOME和添加路徑PATH;

通過(guò)上述的安裝,可以通過(guò)下面的顯示來(lái)驗(yàn)證是否成功

第八步 : scala環(huán)境的安裝配置
- 理由:代碼執(zhí)行過(guò)程中依賴(lài)scala的配置環(huán)境,需要安裝scala環(huán)境,并設(shè)置全局變量和路徑。
- 下載:本文提供三個(gè)版本的安裝包下載 ,其中2.10.1,2.10.4,2.11.0
- 安裝配置:
- 1.將安裝包安裝在指定目錄,設(shè)置全局變量SCALA_HOME和添加路徑PATH,最終安裝成功顯示如下;

第九步 : scala ide集成插件的加載配置
- 理由:IDE集成環(huán)境執(zhí)行過(guò)程中依賴(lài)scala插件的相關(guān)JAR包,需要單獨(dú)下載相應(yīng)版本的scala ide,并將features和plugins目錄下的文件都復(fù)制到上述STS集成環(huán)境下。
- 下載:本文提供兩個(gè)版本的包下載 ,其中32位,64位。
- 安裝配置:
- 1.將下載包解壓,復(fù)制features和plugins目錄下的文件到\sts-bundle\sts-3.8.1.RELEASE\ 下的同命名文件目錄中去;

至此,通過(guò)以上9個(gè)步驟的下載、安裝和配置,一個(gè)基于Windows的標(biāo)配大數(shù)據(jù)挖掘環(huán)境就已經(jīng)搭建好了。上面這些版本和鏈接都會(huì)在以后日子進(jìn)行更新迭代,有部署過(guò)程中遇到問(wèn)題的小伙伴,也可以積極將問(wèn)題和截圖發(fā)到評(píng)論里,一起進(jìn)行解決。
- 下面的內(nèi)容,本文就利用上述所有步驟部署的大數(shù)據(jù)挖掘環(huán)境做一個(gè)實(shí)踐項(xiàng)目開(kāi)發(fā)的流程,后期文章中會(huì)更深入引導(dǎo)數(shù)據(jù)產(chǎn)品中的數(shù)據(jù)挖掘工程開(kāi)發(fā)。讓真正想踏入大數(shù)據(jù)圈子做數(shù)據(jù)挖掘的小伙伴們,能夠清楚自己目前應(yīng)該做的事,以及公司級(jí)別實(shí)踐應(yīng)用的場(chǎng)景。不脫節(jié)、不迷茫、不盲目!
Step1:創(chuàng)建MAVEN工程


Step2:創(chuàng)建工程中的對(duì)象


Step3:配置好pom.xml文件,下載相關(guān)Spark依賴(lài)包

Step4:寫(xiě)一個(gè)樸素貝葉斯模型里涉及先驗(yàn)概率計(jì)算的邏輯,后期深入的開(kāi)發(fā)等著以后的文章吧!

- 總結(jié):工欲善其事,必先利其器!這句話里面有兩層的邏輯,一方面,你在要踏入大數(shù)據(jù)挖掘領(lǐng)域的同時(shí),應(yīng)該要學(xué)會(huì)部署一套上述這樣的環(huán)境,因?yàn)樗鼘?duì)于你的模型工程開(kāi)發(fā)、集群任務(wù)提交、數(shù)據(jù)產(chǎn)品項(xiàng)目開(kāi)發(fā)、甚至是以后的模型優(yōu)化重構(gòu),都是至關(guān)重要!一方面,我希望真正想學(xué)習(xí)大數(shù)據(jù)挖掘的小伙伴們,要走一個(gè)正確的方向,真正理解大數(shù)據(jù)生態(tài)圈的特點(diǎn),要致力于為數(shù)據(jù)產(chǎn)品提供源源不斷的大數(shù)據(jù)挖掘體系而奮斗,因?yàn)檫@事,不僅僅是玩玩而已?。ㄉ鲜鱿螺d的版本和鏈接都會(huì)在以后的時(shí)間進(jìn)行更新維護(hù))
附錄:本文屬于《以什么姿勢(shì)進(jìn)入數(shù)據(jù)挖掘會(huì)少走彎路》系列章節(jié),首發(fā)于infoQ,鏈接地址。目前為第四篇,以往的鏈接地址為《以什么姿勢(shì)進(jìn)入DataMining會(huì)少走彎路?》、《一種新思想去解決大矩陣相乘》、《你知道DataMining缺乏模塊化思維的后果?》
注:其他商業(yè)平臺(tái)轉(zhuǎn)載需聯(lián)系infoQ進(jìn)行授權(quán),杜絕私自轉(zhuǎn)載!
=======================================
最后一句,希望各位看官都能夠點(diǎn)擊投票鏈接,選擇3號(hào),為我投一個(gè)票,十分感謝,感情也能夠細(xì)水長(zhǎng)流撒!


