一、Spark是什么?
引用官网的简介
Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.
二、Spark的架构
Spark架构图
1.Spark Core 包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的
2.Spark SQL 提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。
3. Spark Streaming 对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据。
4.MLlib 一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。
5.GraphX 控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作。
如果您还是一脸懵逼的话,可以参考下面的链接介绍的spark原理
代码语言:javascript复制https://blog.csdn.net/swing2008/article/details/60869183
三、Spark的安装
1、下载 直接到官网下,选择源码下载
代码语言:javascript复制wget http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.3.0/spark-2.3.0.tgz
2、按照官网要求安装maven3.3.9以上和jdk1.8以上版本 指定maven的本地jar库
代码语言:javascript复制<localRepository>/root/data/maven/repo</localRepository>
3、安装Scala2.11.8 配置Scala到环境变量中
代码语言:javascript复制wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
4、解压后,进入spark-2.3.0目录 修改pom.xml 4.1、修改插件版本为3.3.2
代码语言:javascript复制<dependency>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.3.2</version>
</dependency>
4.2、添加cdh的资源库
代码语言:javascript复制<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
4.3、编译
代码语言:javascript复制./dev/change-scala-version.sh 2.11 ./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn
如果build成功就行了(这是一个漫长的过程,期间会出现很多错误,您就要靠搜索引擎了,或者看官网的教程)
四、Spark启动
建议添加spark到环境变量中 启动命令 local模式启动:
代码语言:javascript复制spark-shell --master local[2]