在本地Windows环境中调测MapReduce应用
操作场景
在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。
MapReduce应用程序运行完成后,可通过如下方式查看应用程序的运行情况。
- 在IntelliJ IDEA中查看应用程序运行情况。
- 通过MapReduce日志获取应用程序运行情况。
- 登录MapReduce WebUI查看应用程序运行情况。
- 登录Yarn WebUI查看应用程序运行情况。
- 如果Windows运行环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。
- 在MapReduce任务运行过程中禁止重启HDFS服务,否则可能会导致任务失败。
前提条件
- 已将准备连接MapReduce集群配置文件获取的配置文件放置到MapReduce样例工程的“../src/mapreduce-example-security/conf”路径下。
- 已参考规划MapReduce统计样例程序数据将待处理数据上传至HDFS。
运行统计样例程序
- 确保样例工程依赖的所有jar包已正常获取。
- 在IntelliJ IDEA开发环境中,打开样例工程中“LocalRunner.java”工程,右键工程,选择 运行应用工程。
运行多组件样例程序
- 在放置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; };
- test:为准备集群认证用户信息创建的用户名称,例如developuser。
- 系统域名:登录FusionInsight Manager后,选择“系统 > 权限 > 域和互信”,查看“本端域”参数,即为当前系统域名。
- 确保样例工程依赖的所有Hive、HBase相关jar包已正常获取。
- 在IntelliJ IDEA开发环境中,选中“MultiComponentLocalRunner.java”工程,单击运行对应的应用程序工程。或者右键工程,选择
运行应用工程。
如果集群开启了ZooKeeper SSL,则运行该样例前,需要检查配置文件mapred-site.xml(准备运行环境配置文件中样例工程的“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
在Windows环境运行样例代码时会出现下面的异常,但是不影响业务:
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
- 通过MapReduce服务的WebUI进行查看
使用具有任务查看权限的用户登录FusionInsight Manager,选择“集群 > 服务 > Mapreduce > JobHistoryServer”进入Web界面后查看任务执行状态。
图1 JobHistory Web UI界面
- 通过YARN服务的WebUI进行查看
使用具有任务查看权限的用户登录FusionInsight Manager,选择“集群 > 服务 > Yarn > ResourceManager(主)”进入Web界面后查看任务执行状态。图2 ResourceManager Web UI页面
- 查看MapReduce日志获取应用运行情况
您可以查看MapReduce日志了解应用运行情况,并根据日志信息调整应用程序。