热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mac系统搭建Spark数据挖掘平台(含Scala)

Mac系统搭建Spark数据挖掘平台(含Scala)近期该做一个数据挖掘课程的大作业,要求搭建Spark平台实现算法,自己搭建的时候踩了一些坑,同时也感觉所找到的一些博客写的不太详

Mac 系统 搭建Spark数据挖掘平台(含Scala)

近期该做一个数据挖掘课程的大作业,要求搭建Spark平台实现算法,自己搭建的时候踩了一些坑,同时也感觉所找到的一些博客写的不太详细或是有些容易产生误导的地方,决定自己写一篇Mac系统下Spark软件搭建的博文,与大家交流分享下。

由于写技术分享博客对我来说是“大姑娘上花轿--头一回”如果有写的有误或是表述不清的地方,还请谅解,并在评论区为我留下宝贵意见,感激万分!

下面正文开始:

Mac系统搭建Spark还是比较简单的(在看完我实验室同学搭建win+spark后尤其能体会),本文主要分为4部分的内容:

1.安装JDK
2.安装Scala
3.安装Spark
4.测试运行

---------------------------------------------------------------------------------------------

JDK、Scala、Spark这三者是依次依赖的关系,Spark是使用Scala语言开发的(可在搭建好的交互界面直接用Scala语言写算法),Scala语言必须运行与JVM上,所以,Scala依赖于Java环境。

1.安装JDK

1.1下载安装包

进入官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,点击 Accept License Agreement,然后就可以下载Mac OSX 版本,后缀为.dmg格式。

Mac 系统 搭建Spark数据挖掘平台(含Scala)

1.2安装JDK

下载完成后,将文件移动到你想存放的地方,双击安装即可。

安装完成后打开终端(terminal),输入java -version,查看:

MBP:~ zhangweixun$ java -version

java version "1.8.0_151"

Java(TM) SE Runtime Environment (build 1.8.0_151-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

显示为上面的结果,就安装成功了。

2.安装Scala

这一步有两种办法,大家自行选择,如果提前装过homebrew的肯定是方法一方便。

方法一:(也是我用的方法)homebrew安装

(关于homebrew的安装,可以查看官网链接https://brew.sh,或者看这篇博客(csdn上找的)https://blog.csdn.net/G_eorge/article/details/51378654。

Homebrew是一个包管理器,用于在Mac上安装一些OS X没有的UNIX工具,它将这些工具统统安装到了 /usr/local/Cellar 目录中,并在 /usr/local/bin 中创建符号链接。很好用很强大,强烈建议安装。

安装完homebrew之后就很简答了,直接一行 brew install scala 即可。

MBP:~ zhangweixun$ brew install scala

安装完成后在终端输入scala,效果如下:

MBP:~ zhangweixun$ scala

Welcome to Scala 2.12.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_151).

Type in expressions for evaluation. Or try :help.


scala> 

安装完成。

方法二:安装包安装

首先下载安装包,官网链接https://www.scala-lang.org/download/

Mac 系统 搭建Spark数据挖掘平台(含Scala)将Scala压缩包scala-2.12.6.tgz解压缩到/usr/local/Cellar文件夹下面,生成scala-2.12.6文件夹

然后配置环境变量

使用sudo su进入管理员权限,配置/etc/bashrc文件:

MBP:~ zhangweixun$ sudo su

Password:

sh-3.2# vim /etc/bashrc

在打开的文件中,加入如下内容:

export PATH="$PATH:/usr/local/Cellar/scala-2.12.6/bin" 

然后source /etc/bashrc 即可。

安装完成后在终端输入scala,效果如下:

MBP:~ zhangweixun$ scala

Welcome to Scala 2.12.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_151).

Type in expressions for evaluation. Or try :help.


scala> 

安装完成。

3.安装Spark

3.1下载安装包

官网下载链接http://spark.apache.org/downloads.html,我选择的版本如下spark-2.1.1-bin-hadoop2.7.tgz:

Mac 系统 搭建Spark数据挖掘平台(含Scala)3.2解压安装包到所需路径

解压缩压缩文件到文件夹/usr/local/Cellar,生成spark-2.1.1-bin-hadoop2.7文件夹。

tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz

3.3配置环境变量
使用sudo su进入管理员权限,配置/etc/bashrc文件,添加如下内容:

export PATH="$PATH:/usr/local/Cellar/spark-2.0.1-bin-hadoop2.7/bin" 

3.4进行本机SSH配置,在主目录下输入如下命令:

ssh-****** –t rsa –P ""

然后在左上角苹果图标: 系统偏好设置->共享 选中 远程登录

3.5启动Spark

首先cd到,Spark目录中的sbin子目录,运行如下脚本启动Spark:

./start-all.sh

出现

org.apache.spark.deploy.master.Master running as process 38613.  Stop it first.

Password:

localhost: starting org.apache.spark.deploy.worker.Worker, logging to /Users/zhangweixun/postgraduate/Big_Data/spark-2.1.1-bin-hadoop2.7/logs/spark-zhangweixun-org.apache.spark.deploy.worker.Worker-1-MBP.out

然后,查看是否启动,输入jps:

MBP:sbin zhangweixun$ jps

46802 Jps

46691 MainGenericRunner

38613 Master

46791 Worker

43640 SparkSubmit

显示这样就没问题了。

4.测试运行

cd 到Spark目录下的bin子目录运行如下脚本启动Spark shell:

MBP:bin zhangweixun$ ./spark-shell

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties

Setting default log level to "WARN".

To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).

18/06/11 16:19:38 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

18/06/11 16:19:38 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.

18/06/11 16:19:43 WARN ObjectStore: Failed to get database global_temp, returning NoSuchObjectException

Spark context Web UI available at http://10.162.210.81:4041

Spark context available as 'sc' (master = local[*], app id = local-1528705178927).

Spark session available as 'spark'.

Welcome to

      ____              __

     / __/__  ___ _____/ /__

    _\ \/ _ \/ _ `/ __/  '_/

   /___/ .__/\_,_/_/ /_/\_\   version 2.1.1

      /_/

         

Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_151)

Type in expressions to have them evaluated.

Type :help for more information.


scala> 

看到如上界面,恭喜,成功啦,给自己鼓鼓掌!

还有一个点就是,现在如果在终端中输入python,然后import pyspark是无法正常import的,想要正常import,需要做如下操作:

使用sudo su进入管理员权限,配置/etc/bashrc文件:

MBP:~ zhangweixun$ sudo su

Password:

sh-3.2# vim /etc/bashrc

在打开的文件中,加入如下内容:

export SPARK_HOME=/usr/local/Cellar/spark-2.0.1-bin-hadoop2.7

export PYTHOnPATH=${SPARK_HOME}/python:${SPARK_HOME}/python/lib/py4j-0.10.4-src.zip:${PYTHONPATH}


然后source  /etc/bashrc,尝试import pyspark

MBP:~ zhangweixun$ python

Python 2.7.14 |Anaconda custom (64-bit)| (default, Oct  5 2017, 02:28:52) 

[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> import pyspark

>>> 

没有报错,成功啦!恭喜下自己!

注意一:在使用homebrew的时候,会遇到updating很久的情况,其实不需要每次都自动更新,可以在环境变量中加入

export HOMEBREW_NO_AUTO_UPDATE=true

这样homebrew就不会每次都自动更新了,需要的时候可以手动更新。

注意二:

关于修改环境变量,很多博文都直接修改/etc/profile,这样其实不太好,具体如下:

Mac配置变量环境的地方有

1./etc/profile(建议不修改这个文件

全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

2./etc/bashrc (一般在这个文件中添加系统级环境变量)

全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

3.~/.bash_profile (一般在这个文件中添加用户级环境变量)

每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!








推荐阅读
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 在使用USB接口的二维条码扫描器时,发现其无法正确识别条码中的中文字符。然而,采用串口连接的方式则能够成功识别。目前面临的问题是如何将通过串口获取的数据在网页中进行实时展示,希望各位专家能提供解决方案,不胜感激。 ... [详细]
author-avatar
iainabaobei_151
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有