更新时间:2024-10-31 GMT+08:00

在本地Windows环境中调测MapReduce应用

操作场景

在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。

MapReduce应用程序运行完成后,可通过如下方式查看应用程序的运行情况。

  • 在IntelliJ IDEA中查看应用程序运行情况。
  • 通过MapReduce日志获取应用程序运行情况。
  • 登录MapReduce WebUI查看应用程序运行情况。
  • 登录Yarn WebUI查看应用程序运行情况。
  • 如果Windows运行环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。
  • 在MapReduce任务运行过程中禁止重启HDFS服务,否则可能会导致任务失败。

运行统计样例程序

  1. 确保样例工程依赖的所有jar包已正常获取。
  2. 在IntelliJ IDEA开发环境中,打开样例工程中“LocalRunner.java”工程,右键工程,选择Run > LocalRunner.main()运行应用工程。

运行多组件样例程序

  1. 确保已将将user.keytab、hive-site.xml、hbase-site.xml、hiveclient.properties等配置文件放置到工程的“conf”目录下。

    在“conf”目录创建“jaas_mr.conf”文件并添加如下内容(test是user.keytab对应的用户名称):
    Client {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    keyTab="user.keytab"
    principal="test@<系统域名>"
    useTicketCache=false
    storeKey=true
    debug=true;
    };

  2. 确保样例工程依赖的所有Hive、HBase相关jar包已正常获取。
  3. 在IntelliJ IDEA开发环境中,选中“MultiComponentLocalRunner.java”工程,单击运行对应的应用程序工程。或者右键工程,选择Run MultiComponentLocalRunner.main()运行应用工程。

    如果集群开启了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日志了解应用运行情况,并根据日志信息调整应用程序。