【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

  • 2016-09-28
  • 本文字数:3384 字

    阅读完需:约 11 分钟

编者按:本文作者汪榕曾写过一篇文章:《以什么姿势进入数据挖掘会少走弯路》,是对想入行大数据的读者的肺腑之言,其中也表达了作者的一些想法,希望大家不要随便去上没有结合业务的收费培训班课程;而后,他有了结合他本人的工作经验,写一系列帮助大家进行实践学习课程文章的想法,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.1 2.10.4 2.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 次数学建模一等奖,包括全国大学生国家一等奖,在国内期刊发表过相关学术研究。两年电商数据挖掘实践,负责开发精准营销产品中的用户标签体系。发表过数据挖掘相关的多篇文章。目前在互联网金融行业从事数据挖掘工作,参与开发反欺诈实时监控系统。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2016-09-28 02:006493

评论

发布
暂无评论
发现更多内容

盘点|《数据安全法》的26部配套立法(附下载)

极盾科技

数据安全

亚马逊云科技与英伟达扩展合作 持续推进生成式AI创新

财见

万界星空科技商业开源MES,技术支持+项目合作

万界星空科技

开源 mes 开源mes 万界星空科技 商业开源

.NET开源免费的Windows快速文件搜索和应用程序启动器

EquatorCoco

C# .net 开源

低代码与前端项目部署:革新软件开发的新篇章

EquatorCoco

前端 前端开发 低代码

2024南京国际消费电子展览会

AIOTE智博会

消费电子展会 消费电子博览会

数据集成之任务调度模式 v0.7

LIEN

开源 数据仓库 数据集成 业务融合 API对接

探索Garnet:微软开源的高性能分布式缓存存储系统

gogo

【OCI系列】走进甲骨文云服务器:– Console

Geek_2d6073

海外云手机如何帮助亚马逊引流?

Ogcloud

云手机 海外云手机 云手机海外版 电商云手机 跨境云手机

Hybird App开发,纯血鸿蒙系统兼容救星

Geek_2305a8

体育赛事直播平台:开发新增短视频模块,影响竟然这么大

软件开发-梦幻运营部

软件测试学习笔记丨Pytest–Fixture特点及优势

测试人

软件测试

三款.NET代码混淆工具比较分析:ConfuserEx、Obfuscar和Ipa Guard

雪奈椰子

如何用云手机运营Facebook账号

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 跨境云手机

面试官:Kafka和ES选主有什么区别?

王磊

Java 面试

Debezium vs OGG vs Tapdata:如何实时同步 Oracle 数据到 Kafka 消息队列?

tapdata

同步 Oracle 数据到 Kafka Oracle 到 Kafka Kafka 数据同步方案 Oracle 数据同步工具

如何借助API提升产品设计的用户体验

Noah

云PBX的介绍

ctsxiyou

通信 通讯 云pbx 云通讯

敏捷开发最佳实践:组织架构实践案例之构建软硬件融合部落

PingCode

敏捷开发 敏捷流程

解锁第五代英特尔至强的AI“秘籍”:CPU也能运行大模型推理

E科讯

GaussDB(分布式)实例故障处理

快乐非自愿限量之名

分布式 故障

小程序应用市场的发展演变

FinFish

应用市场 小程序应用市场 移动应用市场

海外客户获取难?海外云手机助力电商营销引流!

Ogcloud

云手机 海外云手机 云手机海外版 电商云手机 跨境云手机

图扑物联赋能港口智能照明

图扑物联

工业物联网 智慧港口 智能照明 web组态软件 云组态

极盾故事|“账号在非常用IP、非工作时间频繁访问敏感数据”,某品牌咖啡是这样处理的!

极盾科技

从 Linux 内核角度探秘 JDK MappedByteBuffer

不在线第一只蜗牛

Linux 测试

个人开发App成功上架手机应用市场的关键步骤

雪奈椰子

云原生最佳实践系列2:基于 MSE 云原生网关同城多活

阿里巴巴云原生

阿里云 云原生 云原生网关

[每日秒懂] 软件工程

dinstone

DevOps 敏捷开发 软件工程 持续交付 持续部署

生成大边界不重复随机整数

waitmoon

伪随机函数 随机数

简单之极,搭建属于自己的Data Mining环境(Spark版本)_大数据_汪榕_InfoQ精选文章