|
|
|
@ -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`的安装啦。
|