设为首页 加入收藏

TOP

开源数据处理框架Spark - 从入门到放弃
2018-12-06 01:32:41 】 浏览:28
Tags:开源 数据处理 框架 Spark 入门 放弃

本节开始搭建我们的Spark开发环境了,编写一些简单的函数,打包成jar文件,然后放入到Spark环境中运行。根据上节的情况,接下来的内容力求更通俗易懂,至少看起不那么晦涩。本篇主要是安装步骤,不涉及原理讲解,但是开源项目的安装部署往往也是难点。

在此之前,先闲扯一点题外话。这次的标题是入门到放弃,也是很多初学编程,或者想学习开源项目的同学所遇到的问题。刚开始很好奇并且信心满满,可是越往后越发现过程很枯燥,逐渐丧失兴趣直到放弃。也有的说学这些没啥用,没有切实的工作使用背景。

不管是学习编程还是其他任何事,思路和方法决定你是否能更快更好的完成预期的目标。不止是编程领域,我觉得任何一门技术的意义,应该都只是一块敲门砖,它能够暂时让你获得一些好处,但不能成为一生追求的目标。当然准备终生投身革命一线斗争的的道友就······别过。

这里学习Spark只需要:基本的高级编程语言基础。你需要了解啥是变量,对象,方法,如何调用,以及较高级的多线程,IO,Socket等,这个应该是一门语言最基本的东西了。至于更高级的操作系统,网络,协议,框架等,暂可忽略。编程使用的是高级语言,不直接与计算机硬件打交道,也就是说和计算机系统是隔离的,知不知道啥计算机原理、JVM虚拟机底层编译原理影响不大。其次,框架是对底层语言的封装,操作的的是更高级的API接口,其目的就是隐藏内部实现,方便使用。scala也是对java的二次提炼和优化,让代码变得更加简洁高效了。所以,知道如何编写一个HelloWorld,并大概了解是怎么运行的就够了。这里指的是先入门,并非不重要,允许知识盲点。我们无法决定起点,但可以决定终点。

一个健康的学习路径,应该是由事物发展和认识事物的规律决定,再合理地规划学习步骤。正如上节中提到的,在Spark学习中:由初步认识–简单使用–窥探细节
1,先通过各方面了解Spark概念
2,搭建本地运行环境
3,搭建本地开发环境
4,了解程序编码流程
5,学习scala基本语法和高级用法
6,编写程序并植入到本地环境运行
7,最后了解其内部实现机制(也分成度)

当然,越往后会难度越大,但是也是成梯度逐渐增加的。
对于Spark而言,还有另一个要求就是能看懂基本的数学公式,对数据统计和概率论有了解更好。后面也将学习简单的数据挖掘、机器学习等相关算法的实践。同理,这些算法也不需要自己去推演或者编写,轮子已经有人造好了,可以直接拿来用。那么,现在的目标很明确了:学会怎么样使用轮子了,然后再去了解是咋造轮子的。

扯淡环节完毕,让我们进入到Spark开发环境搭建吧!

一 安装IDEA

Spark大部分用scala语言编写,scala用IDEA编辑,所以第一步先安装编辑器。
IDEA下载:https://www.jetbrains.com/idea/download/#section=windows

这里写图片描述

这里下载的是社区版,安装过程一路next直到完成。

二,安装scala插件

使用IDEA线上安装插件下载速度有点捉急,而且下载完安装不一定成功。这里我们手动下载插件
插件地址:https://plugins.jetbrains.com/plugin/1347-scala

这里写图片描述

注意此处的scala插件的版本要与我们之前下载的IDEA版本一致,那么如何查看呢?

这里写图片描述

下载完插件后,进入IDEA 依次点击:左上方 file—Settings—Plugins—Install Plugins from disk 选择插件下载的目录点击OK

这里写图片描述

三 第一个scala helloword

依次点击 file—project—Scala—IDEA—Next如图
这里写图片描述

这里写图片描述

依次编辑第1行:工程名
第2行:工程存放目录
第3行:JDK版本
第4行:Scala SDK版本
然后Finish

这里写图片描述

右键 项目src—New—Package,然后在新建的包上右键 New—Scala Class —命名类名—选择Object

这里写图片描述

在类中ctrl+J自动生成主函数和打印函数
这里写图片描述

到这里,我们已经成功编辑了第一个程序,接下来将导入Spark源码,让开发环境跑起来,并编写一个简单的函数。

四 构建scala maven项目

file—New—project—maven

这里写图片描述

如上图选择,点击next,命名maven工程

这里写图片描述

一直点击next直到maven自动构建完成,项目结构如下图所示

这里写图片描述

此时注意pom.xml文件中scala的版本要与IDEA的SDK版本一致

这里写图片描述

每次修改完pom.xml的配置,重新更新依赖,如下图所示

这里写图片描述

这里,我们将不用的依赖干掉,如log4j

这里写图片描述

引入SDK

这里写图片描述

这里写图片描述

这里写图片描述

五 导入Spark和相关组件源码

IDEA自带maven插件,点击file—Settings

这里写图片描述

在pom.xml里面引入Spark及相关组件的依赖,这里注意各个组件的版本

<dependencies>
<dependency>
  <groupId>org.scala-lang</groupId>
  <artifactId>scala-library</artifactId>
  <version>${scala.version}</version>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.4</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.specs</groupId>
  <artifactId>specs</artifactId>
  <version>1.2.5</version>
  <scope>test</scope>
</dependency>
 <dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.1.3</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.5</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-client</artifactId>
  <version>2.7.3</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-common</artifactId>
  <version>2.7.1</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-hdfs</artifactId>
  <version>2.7.3</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.11</artifactId>
  <version>2.2.0</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql_2.11</artifactId>
  <version>2.2.0</version>
  <type>jar</type>
</dependency>
</dependencies>

导入相关依赖的包,下载的速度与网速有很大关系,可能等待时间很长,如果失败,重复更新下载

接下来,可以在src/main/app文件编写主函数了

这里写图片描述

def main(args: Array[String]): Unit = {
 println("Hello World!")
 val sparkConf = new      SparkConf().setMaster("local").setAppName("test")
val sparkContext = new SparkContext(sparkConf)

}

右键点击run执行函数

这里写图片描述

控制台执行结果

这里写图片描述

执行结果不报错表示我们的开发环境部署成功,可能在具体的执行中会有不同的错误,仔细回顾每一步,是否哪个步骤没做对。本篇力求着手细节,即使初次使用IDEA,maven,不知道如何安装插件也好,通过此教程都能成功完成。
从下节起,将开始进入正轨的scala语言学习了。先熟悉基本用法,对比它与java语法的区别,了解其特有的函数编程的思想。好了,衡山后学祝小芸有礼,我们下期再见!


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spark(四)————SparkSQL和Sp.. 下一篇Spark简介与功能

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }