Spark开发入门与实践(一)

(一)Spark简介

  Spark于2009年诞生于加州大学伯克利分校AMPLab。目前,已经成为Apache软件基金会旗下的顶级开源项目。
  相对于MapReduce上的批量计算、迭代型计算以及基于Hive的SQL查询,Spark可以带来上百倍的性能提升。目前Spark的生态系统日趋完善,Spark SQL的发布、Hive on Spark项目的启动以及大量大数据公司对Spark全栈的支持,让Spark的数据分析范式更加丰富。

(二)Windows环境开发

1、安装JDK1.7+

(1)JDK下载

http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-windows-x64.exe

(2)配置环境变量

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
path=%JAVA_HOME%\bin;

(3)JDK环境检测

2、安装Scala

(1)Scala下载

http://www.scala-lang.org/download/
安装:scala-2.12.4.msi 到C:\scala

(2)配置环境变量

SCALA_HOME=C:\scala
在path中添加:
path=%SCALA_HOME%\bin;

(3)Scala测试环境

3、安装Windows Hadoop环境:

(1)下载文件

下载地址:https://github.com/steveloughran/winutils
在C盘新建目录:C:\hadoop-2.8.1\bin
解压文件到目录:

(2)配置环境变量

HADOOP_HOME=C:\hadoop-2.8.1
path=%HADOOP_HOME%\bin;

4、安装Windows Spark环境

(1)下载地址:

http://mirrors.shuosc.org/apache/spark/spark-2.2.1/spark-2.2.1-bin-hadoop2.7.tgz

(2)解压文件

解压文件到C:\spark-2.2.1-bin-hadoop2.7

(3)配置环境变量

SPARK_HOME=C:\spark-2.2.1-bin-hadoop2.7
path=%SPARK_HOME%\bin;

(4)检测环境变量

在CMD下执行:
C:>spark-shell

(三)安装Eclipse

1、下载Eclipse for scala

下载地址:
http://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-win32.win32.x86_64.zip

2、安装Eclipse

解压运行即可:

3、Eclipse配置

(1)安装Maven脚手架插件

原生的Maven插件在Eclipse中,不能应用到scala项目。因此需要额外下载一个针对scala的eclipse maven插件。


添写:
Catalog File=http://repo1.maven.org/maven2/archetype-catalog.xml
Description:scala maven

(2) Maven设置


设置Maven配置文件,用于指向已设定的本地仓库:

4、创建Maven项目


选择配置Scala的脚手架:

添写Group ID与ArtifactID:

5、添加Maven依赖

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.7</java.version><scala.version>2.11.2</scala.version><scala.version.tools>2.11</scala.version.tools><spark.version>2.7.1</spark.version>
</properties>
<dependencies><!-- scala语言 --><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>${scala.version}</version></dependency><!-- junit单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.scalacheck</groupId><artifactId>scalacheck_${scala.version.tools}</artifactId><version>1.11.4</version><scope>test</scope></dependency><dependency><groupId>org.scalatest</groupId><artifactId>scalatest_${scala.version.tools}</artifactId><version>2.2.0</version><scope>test</scope></dependency><!-- spark核心包 --><dependency><groupId>com.sparkjava</groupId><artifactId>spark-core</artifactId><version>${spark.version}</version></dependency><!-- streaming包 --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_2.11</artifactId><version>2.2.1</version><scope>provided</scope></dependency><!-- sql包 --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_2.11</artifactId><version>2.2.1</version></dependency><!-- hive包 --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-hive_2.11</artifactId><version>2.2.1</version></dependency><!-- mllib包 --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-mllib_2.11</artifactId><version>2.2.1</version><scope>provided</scope></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.6.2</version></dependency>
</dependencies>

5、编写代码

(1)新建Object

(2)代码编写:

package com.xtwy//导入scala包
import org.apache.spark.{SparkConf, SparkContext}
/*** 对数组中的每个元素乘以3 ,再过滤出来数组中大于10 的元素,然后对数组求和。*/
object SparkScalaTest {def main(args: Array[String]): Unit = {  val conf = new SparkConf().setAppName("mySpark")//setMaster("local") 本机的spark就用local,远端的就写ip//如果是打成jar包运行则需要去掉 setMaster("local")因为在参数中会指定。conf.setMaster("local")val sc = new SparkContext(conf)//_为占位符val rdd = sc.parallelize(List(1, 2, 3, 4, 5, 6)).map(_ * 3)val mappedRDD = rdd.filter(_ > 10).collect()//输出大于10的元素for (arg <- mappedRDD)print(arg + " ")println()//对集合求和println("求和结果"+rdd.reduce(_ + _))}
}

(3)测试运行


Spark开发入门与实践(一)相关推荐

  1. python开发web教学视频_Python快速Web开发入门与实践视频课程

    Python快速Web开发入门与实践欢迎来到KK的<Python快速Web开发入门与实践>捧场!下面请允许我为这套课程做一点介绍. <Python快速Web开发入门与实践>是一 ...

  2. android开发入门与实践_我的新书《Android App开发入门与实战》已经出版

    前言 工作之余喜欢在CSDN平台上写一些技术文章,算下时间也有两三年了.写文章的目的一方面是自己对技术的总结,另一方面也是将平时遇到的问题和解决方案与大家分享,还有就是在这个平台上能和大家共同交流. ...

  3. Spark 开发入门

    文章目录 Spark是什么 DAG有向无环图 spark环境搭建 Spark开发 pyspark使用 python Spark初始化 创建RDD 数据的读取和保存 文本文件 Json文件 RDD的转换 ...

  4. android开发入门与实践_Electron从入门到实践,前端开发者开发桌面App的最佳选择...

    在开始之前,我想您一定会有这样的困惑:标题里的Electron 是什么?Electron能做什么?许多伟大的公司使用Electron框架的原因又是什么? 带着这些问题和疑惑,通过本文的介绍,可助您全面 ...

  5. 大数据spark开发入门教程

    大数据是互联网发展的方向,大数据人才是未来的高薪贵族.随着大数据人才的供不应求,大数据人才的薪资待遇也在不断提升.如果你也想进入大数据行业,也想学习大数据技术,大数据讲师认为,可以先从spark技术开 ...

  6. 《微信小程序开发入门与实践》笔记 总结

    小程序快捷键 格式调整 Ctrl+S: 保存文件 Ctrl+[, Ctrl+]: 代码行缩进 Ctrl+Shift+[, Ctrl+Shift+]: 折叠打开代码块 Ctrl+C Ctrl+V: 复制 ...

  7. 《Google Android开发入门与实战随书视频》

    1.[eoeAndroid特刊]第一期 Andriod 1.5 SDK简介   http://download.csdn.net/source/2399809 2.[eoeAndroid特刊]第二期  ...

  8. 计算机编程书籍-Python硬件开发树莓派从入门到实践无人驾驶 AndroidTV 自动循迹

    内容简介 <Python硬件开发树莓派从入门到实践>全书可大致分为4个部分,其中第13章介绍了树莓派的基本使用:第4章介绍了如何在树莓派上使用Python的OpenCV包:第58章介绍了树 ...

  9. OWIN的理解和实践(三) –Middleware开发入门

    原文:OWIN的理解和实践(三) –Middleware开发入门 上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的M ...

  10. c++整理程序 dev_C编程从入门到实践:C语言开发工具详解(2)

    DEV C++是一款经典的轻量级C语言开发工具,其安装大小只有几十兆,并且具有图形视图界面,操作比较容易.在DEV C++编码界面中可以使用复制和粘贴等命令,这提高了开发效率. 2.3.1安装DEV ...

最新文章

  1. Arrays.asList方法总结
  2. Linux多线程矩阵,操作系统实验——多线程计算矩阵相乘
  3. bash之逻辑控制---for语句
  4. 神策数据荣登 2020 IDC 中国 Fintech 50 强榜单
  5. C++设计模试之S状态模式
  6. JDBC之一:快速入门
  7. python对象序列化或持久化的方法
  8. 搭建WeApacheb网站服务器
  9. 动点移动轨迹,猜猜这是曲线还是直线?
  10. 条件变量 ---C++17 多线程
  11. es6判断对象key是否存在,ES6中获取对象的key
  12. django mysql settings
  13. 下个乳业蓝海风口 竟很可能是低温鲜奶?
  14. 小程序_小程序开发,小程序定制开发,小程序搭建,小程序系统开发
  15. feynman1999_AI Feynman 2.0:从数据中学习回归方程
  16. Wyn Enterprise 核心功能:易用至极的自助式BI和数据分析工具
  17. 武汉晴川学院计算机,2019武汉晴川学院专业排名
  18. 秒杀活动(应对大并发:如何利用缓存+异步 )
  19. 计算机招聘试题选择题,计算机考试题库:计算机基础练习题(39)
  20. python自动化测试简历模板_自动化测试工程师简历封面模板下载

热门文章

  1. 论文阅读 A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SEN- TENCE EMBEDDINGS
  2. 白话空间统计三十:地统计学(2)前提假设
  3. MySQL的jar包下载
  4. 关联分析购物篮案例python_多角度看数据挖掘经典案例-购物篮分析
  5. 【P2P网络】磁力链接转换为种子文件 magnet to torrent
  6. 统计学附录,F分布和t分布表
  7. 2021最新计算机二级C语言试题
  8. E-Prime2.0安装避坑指南
  9. Ubuntu Python3安装
  10. STM32笔记之 SWJ(JTAG-DP和 SW-DP)