添加第一章内容

master
xlc 6 years ago
parent 8572ef8675
commit 084c72f4e0

@ -1,2 +1,23 @@
# Introduction
# 前言
随着大数据时代的到来,各行各业的工作者都迫切需要更好更快的数据计算与分析工具,`2009`年,`Spark`应运而生,在很短的时间里就崭露头角,受到了业界的广泛肯定与欢迎,如今已是`Apache`软件基金会会下的顶级开源项目之一。相较于曾经引爆大数据产业革命的`Hadoop MapReduce`框架,`Spark`带来的改进更加令人欢欣鼓舞。首先,基于内存计算的`Spark`速度更快,减少了迭代计算时的`IO`开销,而且支持交互性使用,其次。`Spark`丰富的`API`提供了更强大的易用性,它支持使用`Scala`、`Java`、`Python`与`R`语言进行编程,有助于开发者轻松构建并行的应用程序。而且,`Spark`支持多种运行模式,既可以运行于独立的集群模式或`Hadoop`集群模式中,也可以运行在云星宇`Amazon EC2`等云环境中。
Apache Spark是用于大规模数据处理的统一分析引擎Spark使用Scala语言进行实现它是一种面向对象、函数式编程语言能够像操作本地集合对象一样轻松地操作分布式数据集它具有运行速度快、易用性好、通用性强和随处运行等特点。
它有如下几个特点:
1. 运行速度快
Apache Spark使用最先进的DAG调度程序查询优化器和物理执行引擎为批处理数据和流数据提供了高性能。
2. 使用方便
可以使用JavaScalaPythonR和SQL等语言快速编写应用程序。
Spark提供了80多个高级操作员可轻松构建并行应用程序。也可以从ScalaPythonR和SQL Shell 交互使用它。
3. 支持多种开发场景
Spark技术栈包括SparkSQL 、 DataFrames、Spark MLlib for machine learning, GraphX 以及 Spark Streaming。
![](/image/stack.png)
4. 可运行在多种环境
Spark可在HadoopApache MesosKubernetes独立或云中运行。它可以访问各种数据源。
![](/image/frame.png)

@ -1,9 +1,10 @@
# 大数据分析Spark
* [项目简介](README.md)
* [第一章 Spark环境搭建和使用方法](/chapter1/1Spark简介.md)
* [1.1 Spark单机版环境搭建](/chapter1/1.1Spark单机版环境搭建.md)
* [1.2 Spark完全分布式环境搭建](/chapter1/1.2Spark完全分布式环境搭建.md)
* [第一章 Spark环境搭建和使用方法](/chapter1/1Spark安装简介.md)
* [1.1 Scala环境搭建](/chapter1/1.1Scala环境搭建.md)
* [1.2 Spark单机版环境搭建](/chapter1/1.2Spark单机版环境搭建.md)
* [1.3 Spark完全分布式环境搭建](/chapter1/1.2Spark完全分布式环境搭建.md)
* [第二章 Spark结构化数据分析与处理](/chapter2/2结构化数据分析与处理简介.md)
* [2.1 SparkSQL统计各个研发单位研制战斗机占比](/chapter2/2.1统计各个研发单位研制战斗机占比.md)
* [2.2 SparkSQL对战斗机飞行性能进行分析](/chapter2/2.2对战斗机飞行性能进行分析.md)

@ -0,0 +1,61 @@
## 1.1 Scala开发环境搭建
`Scala`是一种函数式面向对象语言,它融汇了许多前所未有的特性,而同时又运行于`JVM`之上。随着开发者对`Scala`的兴趣日增,以及越来越多的工具支持,无疑`Scala`语言将成为你手上一件必不可少的工具。
而我们将要学习的大数据框架`Spark`底层是使用`Scala`开发的,使用`scala`写出的代码长度是使用`java`写出的代码长度的`1/10`左右,代码实现更加简练。
所以安装与配置`Scala`的环境是我们在开始学习`Spark`之前要完成的准备工作。
接下来我们开始安装,分为三个步骤:
1. 下载解压;
2. 配置环境;
3. 校验。
### 1.1.1 下载解压
在[Scala官网](https://www.scala-lang.org/download/)根据平台选择下载`Scala`的安装包,
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="/api/attachments/224755" alt="" height="100%" width="100%" />
</p>
接下来,解压到`/app`目录下:
```
mkdir /app //创建 app 目录
tar -zxvf scala-2.12.7.tgz -C /app
```
提示:在平台已经将解压包下载在`/opt`目录下了,就不需要再从网络下载了。
### 1.1.2 配置环境
接下来我们开始配置环境,**在自己本机上需要配置好`Java`环境**,因为`Scala`是基于`jvm`的(在平台已经将`Java`环境配置好了):
`vi /etc/profile`
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="/api/attachments/226288" alt="" height="100%" width="100%" />
</p>
不要忘了配置好之后`source /etc/profile`
### 1.1.3 校验
在命令行输入:`scala -version`出现如下结果就配置成功了
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="/api/attachments/224758" alt="" height="100%" width="100%" />
</p>
按照惯例,我们在开始一个编程语言要进行一个仪式,哈哈,那就是,`Hello World`,接下来我们使用`Scala`输出`Hello World`
在命令行中输入`scala`进入Scala命令行输入`println("Hello World")` 就可以啦。
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="/api/attachments/225593" alt="" height="100%" width="100%" />
</p>

@ -0,0 +1,114 @@
## 1.2 Spark单机版环境搭建
`Apache Spark`是专为大规模数据处理而设计的快速通用的计算引擎。`Spark`是`UC Berkeley AMP lab`(加州大学伯克利分校的`AMP`实验室)所开源的类`Hadoop MapReduce`的通用并行框架,`Spark`拥有`Hadoop MapReduce`所具有的优点;但不同于`MapReduce`的是——`Job`中间输出结果可以保存在内存中,从而不再需要读写`HDFS`,因此`Spark`能更好地适用于数据挖掘与机器学习等需要迭代的`MapReduce`的算法。
现在我们来配置一个伪分布式的`Spark`开发环境,与配置`Hadoop`类似分为三个步骤:
1. 下载解压安装包;
2. 配置环境变量;
3. 配置`Spark`环境;
4. 校验。
### 1.2.1 下载解压安装包
我们从[官网](http://spark.apache.org/downloads.html)下载好安装包,
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/224760" alt="" height="100%" width="100%" />
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/224761" alt="" height="100%" width="100%" />
</p>
接下来解压,在平台已经将`spark`安装包下载到`/opt`目录下了,所以不需要再下载了。
```
tar -zxvf spark-2.2.2-bin-hadoop2.7/ -C /app
```
将压缩包解压到`/app`目录下。
### 1.2.2 配置环境变量
我们将`spark`的根目录配置到`/etc/profile`中(在文件末尾添加)。
```
vim /etc/profile
```
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/225678" alt="" height="100%" width="100%" />
</p>
不要忘了`source /etc/profile`
### 1.2.3 修改Spark配置文件
切换到`conf`目录下:
```
cd /app/spark-2.2.2-bin-hadoop2.7/conf
```
在这里我们需要配置的是`spark-env.sh`文件,但是查看目录下文件只发现一个`spark-env.sh.template`文件,我们使用命令复制该文件并重命名为`spark-env.sh`即可;
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/224765" alt="" height="100%" width="100%" />
</p>
接下来编辑`spark-env.sh`,在文件末尾添加如下配置:
```
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111
export SCALA_HOME=/app/scala-2.12.7
export HADOOP_HOME=/usr/local/hadoop/
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=machine_name // machine_name 根据自己的主机确定
export SPARK_LOCAL_IP=machine_name // machine_name 根据自己的主机确定
```
参数解释:
| 参数 | 解释 |
| - | - |
| JAVA_HOME | Java的安装路径 |
|SCALA_HOME|Scala的安装路径|
| HADOOP_HOME| Hadoop的安装路径 |
| HADOOP_CONF_DIR| Hadoop配置文件的路径|
| SPARK_MASTER_IP | Spark主节点的IP或机器名|
| SPARK_LOCAL_IP | Spark本地的IP或主机名 |
如何查看机器名/主机名呢?
很简单,在命令行输入:`hostname`即可。
### 1.2.4 校验
最后我们需要校验是否安装配置成功了;
现在我们启动`spark`并且运行`spark`自带的`demo`
首先我们在`spark`根目录下启动`spark`
在`spark`的根目录下输入命令`./sbin/start-all.sh`即可启动,使用`jps`命令查看是否启动成功,有`woker`和`master`节点代表启动成功。
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/225693" alt="" height="100%" width="100%" />
</p>
接下来运行`demo`
- 在`Spark`根目录使用命令`./bin/run-example SparkPi > SparkOutput.txt`运行示例程序
- 在运行的时候我们可以发现打印了很多日志,最后我们使用`cat SparkOutput.txt`可以查看计算结果(计算是有误差的所以每次结果会不一样):
<p align="center" >
<img style="border: 2px solid #ddd;padding: 5px; background: #fff;" src="https://www.educoder.net/api/attachments/225700" alt="" height="100%" width="100%" />
</p>
好了,如果你能到这一步就已经完成了伪分布式`Spark`的安装啦。

@ -0,0 +1,14 @@
# 第一章Spark单机版环境搭建
要开始进行Spark的学习我们需要首先安装Spark的开发环境作为一名新手在搭建环境的时候可能会遇到一些问题所以我们将女装Spark的步骤分为三步
1. Scala环境搭建
2. Spark单机版环境搭建
3. Spark完全分布式集群环境搭建
通过这三个分解的步骤相信你能完成Spark开发环境的搭建。
那么,现在开始吧!

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Loading…
Cancel
Save