BT

你的观点很重要! 快来参与InfoQ调研吧!

简单之极,搭建属于自己的Data Mining环境(Spark版本)

| 作者 汪榕 关注 4 他的粉丝 发布于 2016年9月28日. 估计阅读时间: 11 分钟 | ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

编者按:本文作者汪榕曾写过一篇文章:《以什么姿势进入数据挖掘会少走弯路》,是对想入行大数据的读者的肺腑之言,其中也表达了作者的一些想法,希望大家不要随便去上没有结合业务的收费培训班课程;而后,他有了结合他本人的工作经验,写一系列帮助大家进行实践学习课程文章的想法,InfoQ也觉得这是件非常有意义的事情,特别是对于大数据行业1-3年工作经验的人士,或者是没有相关工作经验但是想入行大数据行业的人。课程的名称是“数据挖掘与数据产品的那些事”,目的是:1. 引导目标人群正确学习大数据挖掘与数据产品;2. 协助代码能力薄弱的学习者逐渐掌握大数据核心编码技巧;3. 帮助目标人群理解大数据挖掘生态圈的数据流程体系;4. 分享大数据领域实践数据产品与数据挖掘开发案例;5.交流大数据挖掘从业者职业规划和发展方向。这系列文章会在InfoQ上形成一个专栏,本文是专栏的第一篇。

前言:工欲善其事,必先利其器。倘若不懂得构建一套大数据挖掘环境,何来谈Data Mining!何来领悟“Data Mining Engineer”中的工程二字!也仅仅是在做数据分析相关的事罢了!此文来自于笔者在实践项目开发中的记录,真心希望日后成为所有进入大数据领域挖掘工程师们的良心参考资料。下面是它的一些说明:

  • 它是部署在Windows环境,在项目的实践开发过程中,你将通过它去完成与集群的交互,测试和发布;
  • 你可以部署成使用MapReduce框架,而本文主要优先采用Spark版本;
  • 于你而言,它更多意义在于提高你在个人主机上进行业务场景建模的效率,方便你对算法模型进行测试和优化,以及打包、提交任务。
  • 于我而言,网络上各种鱼龙混杂的资料,一方面是内容误导新人,更缺乏资源整合,一方面仅仅是搬运工,缺乏实践项目中的开发经验,有头无尾。这更是这篇文章的初衷。

铺垫:数据挖掘工程师是一个公司编制为数不多的岗位(你也许懂~)。对于新人,如果它是你的目标,你需要真正理解“挖掘”和“工程”的关联性和重要性,缺一不可;也希望你能区分它与分析师的差异性;更期待你能够知晓这个岗位在数据产品里的角色性,因为这些对于你如何去成为一位数据挖掘工程师来说,很重要!

说完上面这些杂七杂八的伏笔,下文我将深入仔细去引导你,如何去搭建属于自己Spark版本的Data Mining环境,以及某些环节在实践项目中开发的必要性。

第一步 : Java安装和配置(1.7或者1.8)

  • 理由:这是必须要去部署的环境,不解释。不过注意区分版本、以及个人主机是32位还是64位;
  • 下载:本文提供1.8版本的下载 ,其中32位下载64位下载
  • 安装配置:
    • 1.【安装】:点击软件进行安装,按照引导步骤,并指定安装目录(个人喜爱),本文选择默认安装路径;

      jdk安装路径

    • 2.【配置】:配置环境变量JAVA_HOME和路径PATH,选择我的电脑>系统属性>高级系统设置>环境变量;

      环境变量设置

      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”

考虑到有不少读者非软件专业,因此这里没有一笔带过基本的软件安装。最终安装成功的显示如下所示:

 

成功安装java的显示

第二步 : IDE安装和配置(Eclipse或者Spring Tool Suite)

  • 理由:编写工程代码的集成环境,也就是你写代码的地儿。注意IDE区分版本、以及个人主机是32位还是64位;
  • 下载:本文提供最新STS版本的下载 ,其中32位下载64位下载。也可以使用Eclipse或SBT;
  • 安装配置:
    • 1.将安装包下载放在选定目录,进行解压就可以了,并创建桌面快捷方式,方便以后使用;

 

STS解压后应用程序

在后期使用IDE时,考虑到个人有代码洁癖,因此,我都推荐先设置好这几点:a.字体大小和类型,b.缩进方式,c.代码行数序号

第三步 : IDE插件的加载

  • 理由:编写MapReduce/Spark工程需要的插件,注意区分hadoop版本。
  • 下载:本文提供hadoop2.6.0版本的插件 ,其中下载地址
  • 安装配置:
    • 1.将Jar包放在STS目录,位置于\sts-bundle\sts-3.8.1.RELEASE\dropins下;

第四步 : Maven的安装配置

  • 理由:开发实践数据挖掘项目,更多采用Maven进行项目管理。
  • 下载:本文提供两个版本的下载 ,其中3.3.3下载3.3.9下载
  • 安装配置:
    • 1.将安装包解压放在指定目录,设置全局变量M2_HOME和添加路径PATH;

 

MAVEN的全局变量和路径设置

 

Maven安装成功的显示

第五步 : hadoop包的下载配置

  • 理由:代码执行过程中依赖hadoop的环境,需要单独配置hadoop的执行路径。
  • 下载:本文提供2.6.0版本的下载 ,其中下载地址
  • 安装配置:
    • 1.将安装包解压放在指定目录,设置全局变量HADOOP_HOME和添加路径PATH;

 

配置hadoop的全局变量和路径

第六步 : hadoop插件的加载配置

  • 理由:代码执行过程中依赖hadoop的JAR插件,需要单独编译或者下载,放置在上述hadoop解压包的bin目录下。
  • 下载:本文提供2.6.0版本的插件下载 ,其中32位64位
  • 安装配置:
    • 1.将安装包解压放在指定目录,将hadoop.dll和winutils.exe放在hadoop的bin目录下就可以了;

 

将hadoop插件放置于bin目录下

第七步 : spark包的下载配置

  • 理由:代码执行过程中依赖spark的配置环境,需要下载包放置在指定目录,并设置全局变量和路径。
  • 下载:本文提供spark-1.6.2-bin-hadoop2.6版本的插件下载 ,其中下载地址
  • 安装配置:
    • 1.将安装包解压放在指定目录,设置全局变量SPARK_HOME和添加路径PATH;

 

配置Spark的全局变量和路径

通过上述的安装,可以通过下面的显示来验证是否成功

 

Spark配置成功的显示

第八步 : scala环境的安装配置

  • 理由:代码执行过程中依赖scala的配置环境,需要安装scala环境,并设置全局变量和路径。
  • 下载:本文提供三个版本的安装包下载 ,其中2.10.12.10.42.11.0
  • 安装配置:
    • 1.将安装包安装在指定目录,设置全局变量SCALA_HOME和添加路径PATH,最终安装成功显示如下;

 

scala成功安装的显示图

第九步 : scala ide集成插件的加载配置

  • 理由:IDE集成环境执行过程中依赖scala插件的相关JAR包,需要单独下载相应版本的scala ide,并将features和plugins目录下的文件都复制到上述STS集成环境下。
  • 下载:本文提供两个版本的包下载 ,其中32位64位
  • 安装配置:
    • 1.将下载包解压,复制features和plugins目录下的文件到\sts-bundle\sts-3.8.1.RELEASE\ 下的同命名文件目录中去;

 

scala ide集成插件复制到sts指定目录

至此,通过以上9个步骤的下载、安装和配置,一个基于Windows的标配大数据挖掘环境就已经搭建好了。上面这些版本和链接都会在以后日子进行更新迭代,有部署过程中遇到问题的小伙伴,也可以积极将问题和截图发到评论里,一起进行解决。

  • 下面的内容,本文就利用上述所有步骤部署的大数据挖掘环境做一个实践项目开发的流程,后期文章中会更深入引导数据产品中的数据挖掘工程开发。让真正想踏入大数据圈子做数据挖掘的小伙伴们,能够清楚自己目前应该做的事,以及公司级别实践应用的场景。不脱节、不迷茫、不盲目!

Step1:创建MAVEN工程

 

创建Maven工程中的步骤一

 

创建Maven工程中的步骤二

Step2:创建工程中的对象

 

创建Maven工程中的对象

 

创建成功显示图

Step3:配置好pom.xml文件,下载相关Spark依赖包

 

修改pom.xml文件,添加工程依赖包坐标

Step4:写一个朴素贝叶斯模型里涉及先验概率计算的逻辑,后期深入的开发等着以后的文章吧!

(点击放大图像)

代码逻辑,让大家看看模样

总结:工欲善其事,必先利其器!这句话里面有两层的逻辑,一方面,你在要踏入大数据挖掘领域的同时,应该要学会部署一套上述这样的环境,因为它对于你的模型工程开发、集群任务提交、数据产品项目开发、甚至是以后的模型优化重构,都是至关重要!一方面,我希望真正想学习大数据挖掘的小伙伴们,要走一个正确的方向,真正理解大数据生态圈的特点,要致力于为数据产品提供源源不断的大数据挖掘体系而奋斗,因为这事,不仅仅是玩玩而已!(上述下载的版本和链接都会在以后的时间进行更新维护)。

作者介绍汪榕,3年场景建模经验,曾累计获得8次数学建模一等奖,包括全国大学生国家一等奖,在国内期刊发表过相关学术研究。两年电商数据挖掘实践,负责开发精准营销产品中的用户标签体系。发表过数据挖掘相关的多篇文章。目前在互联网金融行业从事数据挖掘工作,参与开发反欺诈实时监控系统。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

这是啥? by 汪 老二

小伙伴们在部署过程中遇到的问题,可以回帖,及时交流

这是啥? by H vicent

infoq没编辑吗?这种文章在blog随便写写就好了,放在这儿是在拉低这个网站的技术水平还是自取其辱?

Re: 这是啥? by bigdata@cn.infoq.com bigdata@c...

小编的话:请看编者按,“...写一系列帮助大家进行实践学习课程文章的想法,InfoQ也觉得这是件非常有意义的事情,特别是对于大数据行业1-3年工作经验的人士,或者是没有相关工作经验但是想入行大数据行业的人。”也特别谢谢您的意见,我们会并有严格审校的。

Re: 这是啥? by 李 浩

好奇怪,如果作者把这个title 作为一个系列,那么作者这么写有什么问题?
当然希望作者能够继续针对像我这种没有机器学习经验的人,给出一个渐进的教程。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT