## 环境搭建
![](https://img.kancloud.cn/2f/72/2f72babefdb1f1418d10d2a4d3cfde8d_864x571.png)
> 根据官网填写这两个文件配置之后,就可以启动。
```
[bizzbee@tencent2 sbin]$ jps
9984 NameNode
27617 ResourceManager
28002 Jps
10092 DataNode
27709 NodeManager
```
## 在yarn启动后,遇到的问题。
### 1. 执行mapreduce自带的example 的时候,遇到的拒绝连接的问题。
* 这个问题弄了好几天,最终确定应该是云服务器配置不够导致执行的时候 namenode挂掉了。
* namenode挂掉了,所以连接失败了。目前我市那么认为的。
### 2. 然后使用win虚拟机重新搭建了系统。
* 系统是centos7 ,网络已开始没有网,详情看VM虚拟机联网的问题那一篇。
* centos重启之后默认网络是关闭的,所以需要设置重启后也开启网络。
![](https://img.kancloud.cn/d4/1d/d41d071ba9d48946f8e4fa1c3b43e789_891x2178.png)
* 也是记得关闭防火墙,并且设置重启后也关闭防火墙。
### 3. 打包本地项目到服务器上跑。
* 到项目的根目录,也就是pom.xml文件所在的目录。执行打包命令`mvn clean package -DskipTests`
![](https://img.kancloud.cn/dc/5a/dc5a81b37ad56a67b9ddf92f09228240_743x290.png)
* 进入到target目录,把生成的jar包上传服务器。(我之前居然不知道scp命令。)
`scp hadoop-train-v2-1.0-SNAPSHOT.jar bizzbee@192.168.31.249:~/work/`
* 然后在服务器上执行运行jar 包命令。(有一些准备,比如测试文件之类的要上传好。)
```
hadoop jar hadoop-train-v2-1.0-SNAPSHOT.jar com.bizzbee.bigdata.hadoop.mr.access.AccessYranApp /bizzbee/input/access.log /bizzbee/output/access.resu
```
* 注意!!有可能出现报错。
```
19/10/15 21:38:08 INFO mapreduce.Job: map 0% reduce 0%
19/10/15 21:38:17 INFO mapreduce.Job: map 100% reduce 0%
19/10/15 21:38:19 INFO mapreduce.Job: Task Id : attempt_1571141976287_0003_r_000000_3, Status : FAILED
Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#5
at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1924)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.io.IOException: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.
at org.apache.hadoop.mapreduce.task.reduce.ShuffleSchedulerImpl.checkReducerHealth(ShuffleSchedulerImpl.java:392)
at org.apache.hadoop.mapreduce.task.reduce.ShuffleSchedulerImpl.copyFailed(ShuffleSchedulerImpl.java:307)
at org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyFromHost(Fetcher.java:366)
at org.apache.hadoop.mapreduce.task.reduce.Fetcher.run(Fetcher.java:198)
```
* 原因和解决办法如下。
![](https://img.kancloud.cn/6a/e8/6ae8af7e0370f24972b55e227e2d49ee_978x1224.png)
* 总结一下是因为`haddop.tmp.dir`是自定义的,而`yarn.nodemanager.local-dirs`的路径应该在`haddop.tmp.dir`里面,如截图所示。如果不添加的话,用系统默认的地址,就不再`haddop.tmp.dir`的里面了。