
# 在本地Windows环境中调测MapReduce应用
#### 操作场景
在程序代码完成开发后，您可以在Windows环境中运行应用。本地和集群业务平面网络互通时，您可以直接在本地进行调测。
MapReduce应用程序运行完成后，可通过如下方式查看应用程序的运行情况。
- 在IntelliJ IDEA中查看应用程序运行情况。
- 通过MapReduce日志获取应用程序运行情况。
- 登录MapReduce WebUI查看应用程序运行情况。
- 登录Yarn WebUI查看应用程序运行情况。
![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 如果Windows运行环境中使用IBM JDK，不支持在Windows环境中直接运行应用程序。
- 在MapReduce任务运行过程中禁止重启HDFS服务，否则可能会导致任务失败。
 
#### 前提条件
- 已将[准备连接MapReduce集群配置文件](https://support.huaweicloud.com/devg3-mrs/mrs_07_150034.html)获取的配置文件放置到MapReduce样例工程的"../src/mapreduce-example-security/conf"路径下。
- 已参考[规划MapReduce统计样例程序数据](https://support.huaweicloud.com/devg3-mrs/mrs_07_150035.html#mrs_07_150035__section14828932165934)将待处理数据上传至HDFS。
 
#### 运行统计样例程序
1. 确保样例工程依赖的所有jar包已正常获取。
2. 在IntelliJ IDEA开发环境中，打开样例工程中"LocalRunner.java"工程，右键工程，选择"Run \> LocalRunner.main()"运行应用工程。
 
#### 运行多组件样例程序
1. 在放置MapReduce工程样例的"../src/mapreduce-example-security/conf"目录下创建"jaas_mr.conf"文件并添加如下内容： 
   ```
   Client {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="user.keytab"
   principal="test@<系统域名>"
   useTicketCache=false
   storeKey=true
   debug=true;
   };
   ```
   ![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - test：为[准备集群认证用户信息](https://support.huaweicloud.com/devg3-mrs/mrs_07_150034.html#mrs_07_150034__section10916205214313)创建的用户名称，例如**develop** **user**。
   
   - 系统域名：登录FusionInsight Manager后，选择"系统 \> 权限 \> 域和互信"，查看"本端域"参数，即为当前系统域名。
    
   
   
2. 确保样例工程依赖的所有Hive、HBase相关jar包已正常获取。
3. 在IntelliJ IDEA开发环境中，选中"MultiComponentLocalRunner.java"工程，单击运行对应的应用程序工程。或者右键工程，选择"Run MultiComponentLocalRunner.main()"运行应用工程。 
   ![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
   如果集群开启了ZooKeeper SSL，则运行该样例前，需要检查配置文件mapred-site.xml（[准备运行环境配置文件](https://support.huaweicloud.com/devg3-mrs/mrs_07_150034.html#mrs_07_150034__section114783616307)中样例工程的"conf"配置文件目录中获取）的配置项"mapreduce.admin.map.child.java.opts"和"mapreduce.admin.reduce.child.java.opts"是否包含如下内容：
   ```
   -Dzookeeper.client.secure=true -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
   ```
   如果不包含，将上述内容添加到配置项末尾处。
   
   
 
#### 查看调测结果
- **查看运行结果获取应用运行情况**
  如下所示，通过控制台输出结果查看应用运行情况。
  ```
  1848 [main] INFO  org.apache.hadoop.security.UserGroupInformation  - Login successful for user admin@<系统域名> using keytab file 
  Login success!!!!!!!!!!!!!!
  7093 [main] INFO  org.apache.hadoop.hdfs.PeerCache  - SocketCache disabled.
  9614 [main] INFO  org.apache.hadoop.hdfs.DFSClient  - Created HDFS_DELEGATION_TOKEN token 45 for admin on ha-hdfs:hacluster
  9709 [main] INFO  org.apache.hadoop.mapreduce.security.TokenCache  - Got dt for hdfs://hacluster; Kind: HDFS_DELEGATION_TOKEN,
  Service: ha-hdfs:hacluster, Ident: 
  (HDFS_DELEGATION_TOKEN token 45 for admin)
  10914 [main] INFO  org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider  - Failing over to 53
  12136 [main] INFO  org.apache.hadoop.mapreduce.lib.input.FileInputFormat  - Total input files to process : 2
  12731 [main] INFO  org.apache.hadoop.mapreduce.JobSubmitter  - number of splits:2
  13405 [main] INFO  org.apache.hadoop.mapreduce.JobSubmitter  - Submitting tokens for job: job_1456738266914_0006
  13405 [main] INFO  org.apache.hadoop.mapreduce.JobSubmitter  - Kind: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:hacluster, 
  Ident: (HDFS_DELEGATION_TOKEN token 45 for admin)
  16019 [main] INFO  org.apache.hadoop.yarn.client.api.impl.YarnClientImpl  - Application submission is not finished, 
  submitted application application_1456738266914_0006 is still in NEW
  16975 [main] INFO  org.apache.hadoop.yarn.client.api.impl.YarnClientImpl  - Submitted application application_1456738266914_0006
  17069 [main] INFO  org.apache.hadoop.mapreduce.Job  - The url to track the job: 
  https://linux2:8090/proxy/application_1456738266914_0006/
  17086 [main] INFO  org.apache.hadoop.mapreduce.Job  - Running job: job_1456738266914_0006
  29811 [main] INFO  org.apache.hadoop.mapreduce.Job  - Job job_1456738266914_0006 running in uber mode : false
  29811 [main] INFO  org.apache.hadoop.mapreduce.Job  -  map 0% reduce 0%
  41492 [main] INFO  org.apache.hadoop.mapreduce.Job  -  map 100% reduce 0%
  53161 [main] INFO  org.apache.hadoop.mapreduce.Job  -  map 100% reduce 100%
  53265 [main] INFO  org.apache.hadoop.mapreduce.Job  - Job job_1456738266914_0006 completed successfully
  53393 [main] INFO  org.apache.hadoop.mapreduce.Job  - Counters: 50
  ```
  ![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
  在Windows环境运行样例代码时会出现下面的异常，但是不影响业务：
  java.io.IOException: Could not locate executable null\\bin\\winutils.exe in the Hadoop binaries.
  
- **通过MapReduce服务的WebUI进行查看**
  使用具有任务查看权限的用户登录FusionInsight Manager，选择"集群 \> 服务 \> Mapreduce ＞ JobHistoryServer"进入Web界面后查看任务执行状态。
  图1JobHistory Web UI界面   
  ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0000001962350501.png) 
- **通过YARN服务的WebUI进行查看**
  使用具有任务查看权限的用户登录FusionInsight Manager，选择"集群 \>服务 \> Yarn \> ResourceManager(主)"进入Web界面后查看任务执行状态。
  图2ResourceManager Web UI页面   
  ![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0000001962310737.png) 
- **查看MapReduce日志获取应用运行情况**
  您可以查看MapReduce日志了解应用运行情况，并根据日志信息调整应用程序。
  
 
