Spark开发环境搭建 Spark 是一个基于内存的分布式计算框架,由 Apache 开发,是一个开源的数据处理引擎。为了使用 Spark,需要搭建 Spark 开发环境,这篇文章将指导您如何安装 Spark、配置环境变量、使用 Local 模式、词频统计案例、Scala 开发环境配置等。 一、安装 Spark 要安装 Spark,需要下载对应的安装包并解压。下载地址为 http://spark.apache.org/downloads.html,选择合适的 Spark 版本和 Hadoop 版本。解压安装包后,需要配置环境变量。添加环境变量:使得配置的环境变量立即生效。 二、配置环境变量 配置环境变量是非常重要的,否则可能会导致 Spark 无法正常工作。例如,需要添加 SPARK_HOME 变量,export SPARK_HOME=/usr/app/spark-2.2.3-bin-hadoop2.6,然后添加 PATH 变量,export PATH=${SPARK_HOME}/bin:$PATH。需要 source /etc/profile 使得环境变量生效。 三、Local 模式 Local 模式是最简单的一种运行方式,它采用单节点多线程方式运行,不需要部署,开箱即用,适合日常测试开发。Local 模式可以启动一个或多个工作线程,例如 local 启动一个工作线程,local[k] 启动 k 个工作线程,local[*] 启动跟 CPU 数目相同的工作线程数。 四、词频统计案例 安装完成后,可以做一个简单的词频统计例子,感受 Spark 的魅力。准备一个词频统计的文件样本 wc.txt,内容如下: 在 Scala 交互式命令行中执行如下 Scala 语句: ```scala val conf = new SparkConf().setAppName("Spark shell").setMaster("local[2]") val sc = new SparkContext(conf) val file = spark.sparkContext.textFile("file:///usr/app/wc.txt") val wordCounts = file.flatMap(line => line.split(",")).map((word => (word, 1))).reduceByKey(_ + _) wordCounts.collect ``` 执行过程如下,可以看到已经输出了词频统计的结果。 五、Scala 开发环境配置 Spark 是基于 Scala 语言进行开发的,分别提供了基于 Scala、Java、Python 语言的 API。如果你想使用 Scala 语言进行开发,则需要搭建 Scala 语言的开发环境。 5.1 前置条件 Scala 的运行依赖于 JDK,所以需要你本机有安装对应版本的 JDK,最新的 Scala 2.12.x 需要 JDK 1.8+。 5.2 安装 Scala 插件 IDEA 默认不支持 Scala 语言的开发,需要通过插件进行扩展。打开 IDEA,依次点击 File => settings=> plugins 选项卡,搜索 Scala 插件 (如下图)。找到插件后进行安装,并重启 IDEA 使得安装生效。 5.3 创建 Scala 项目 在 IDEA 中依次点击 File => New => Project 选项卡,然后选择创建 Scala—IDEA 工程。 5.4 下载 Scala SDK 有两种方式可以下载 Scala SDK,一种是直接从官网下载,另一种是使用 IDEA 的下载功能。下载完成后,点击 Finish 进入工程。 5.5 创建 Hello World 在工程 src 目录上右击 New => Scala class 创建 Hello.scala。输入代码如下,完成后点击运行按钮,成功运行则代表搭建成功。 5.6 切换 Scala 版本 在日常的开发中,由于对应软件(如 Spark)的版本切换,可能导致需要切换 Scala 的版本,则可以在 Project Structure 中进行配置。
剩余6页未读,继续阅读
- 粉丝: 1853
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip