CentOS6.7 下 Hadoop2.7.1 + Spark1.5 环境搭建
## 准备工作
基于上篇:[CentOS6.7 下搭建 Hadoop2.7.1 单机伪分布式环境](https://baike.xsoftlab.net/view/292.html)
## 安装Scala
### 下载地址
[http://www.scala-lang.org/download/2.11.7.html](http://www.scala-lang.org/download/2.11.7.html)
注:我下载的是scala-2.11.7.tgz,页面翻到底部即可看到。
### 安装Scala
#### 切换至root用户
```bash
su -
```
#### 创建/usr/scala文件夹
```bash
mkdir /usr/scala
```
#### 使用FTP工具上传至服务器
将压缩包上传至/home/hadoop目录
**注:**我这里使用的是FlashFXP,使用hadoop用户连接
#### 将压缩包解压至/usr/scala 目录
```bash
tar zxvf /home/hadoop/scala-2.11.7.tgz -C /usr/scala
```
#### 设置环境变量
```bash
vi /etc/profile
#追加如下内容
export SCALA_HOME=/usr/scala/scala-2.11.7
export PATH=$PATH:$SCALA_HOME/bin
```
#### 使环境变量生效
```bash
source /etc/profile
```
#### 测试环境变量设置
```bash
scala -version
```
## Spark安装与配置
### 下载地址
[http://www.apache.org/dyn/closer.lua/spark/spark-1.5.0/spark-1.5.0-bin-hadoop2.6.tgz](http://www.apache.org/dyn/closer.lua/spark/spark-1.5.0/spark-1.5.0-bin-hadoop2.6.tgz)
### 安装Spark
#### 使用FTP工具上传至服务器
将压缩包上传至/home/hadoop目录
#### 将压缩包解压至/usr目录
```bash
tar zxvf /home/hadoop/spark-1.5.0-bin-hadoop2.6.tgz -C /usr
```
#### 修改文件夹名称
```bash
mv /usr/spark-1.5.0-bin-hadoop2.6/ /usr/spark
```
#### 将spark文件夹授权给hadoop用户
```bash
chown -R hadoop:hadoop /usr/spark/
```
#### 设置环境变量
```bash
vi /etc/profile
#追加如下内容
export SPARK_HOME=/usr/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
```
#### 使环境变量生效
```bash
source /etc/profile
```
#### 测试环境变量设置
```bash
spark-bash --version
```
#### 运行SparkPi
```bash
run-example org.apache.spark.examples.SparkPi 10
```
### 配置Spark
#### 切换至Hadoop用户
```bash
su - hadoop
```
#### 修改spark-env.sh
```bash
cd /usr/spark/conf/
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
#追加如下内容
export SCALA_HOME=/usr/scala/scala-2.11.7
export JAVA_HOME=/usr/java/jdk1.7.0_80
export SPARK_MASTER_IP=192.168.30.50
export SPARK_WORKER_MEMORY=1024m
```
#### 启动Spark
```bash
/usr/spark/sbin/start-all.sh
#停止命令 /usr/spark/sbin/stop-all.sh
#另一种方式
start-master.sh
start-slave.sh spark://192.168.30.50:7077
```
#### 提交任务到Spark集群
```bash
spark-submit --master spark://192.168.30.50:7077 --class org.apache.spark.examples.SparkPi --name Spark-Pi /usr/spark/lib/spark-examples-1.5.0-hadoop2.6.0.jar
```
### 使用web查看Spark运行状态
```
http://192.168.30.50:8080/
```
## 在Yarn中运行Spark任务
#### 编辑spark-env.sh
```bash
vi /usr/spark/conf/spark-env.sh
#追加如下内容
export HADOOP_CONF_DIR=/usr/hadoop/etc/hadoop
```
### 运行SparkLR 程序
#### 提交Spark任务到yarn中
```bash
spark-submit --master yarn-cluster --class org.apache.spark.examples.SparkLR --name SparkLR /usr/spark/lib/spark-examples-1.5.0-hadoop2.6.0.jar
```
#### 使用web查看任务运行状态
```
http://192.168.30.50:8088/
```
**如图:**
![](https://image.xsoftlab.net/baike/articleImages/fbbc24cf244a435caef95700133c3fd9.jpg)
## 在Yarn中结合HDFS运行Spark任务
### 运行JavaWordCount程序
```
spark-submit --master yarn-cluster --class org.apache.spark.examples.JavaWordCount --name JavaWordCount /usr/spark/lib/spark-examples-1.5.0-hadoop2.6.0.jar hdfs://192.168.30.50:9000/user/hadoop/input
```
### 使用web查看任务运行结果
**建议:配置windows下的hosts文件指向(如果你用windows访问web)**
```
192.168.30.50 hadoop.master
#位置C:\Windows\System32\drivers\etc
```
#### 查看运行结果
**说明:因为该示例程序输出结果到控制台,所以我们去查看控制台日志**
1. 点击**History(上图中红色框尾部)**
2. 点击**Logs(位置在右下部,与History类似)**
3. 点击**stdout : Total file length is xxxxx bytes.**