zoukankan      html  css  js  c++  java
  • 6.5 hadoop集群运行

    1.1  集群运行

    1.1.1         集群运行步骤

    (1)打包

    打作业jar包发送给集群,hadoop通过搜索驱动程序的类路径(驱动程序中通过setJarByClass设置)自动查找作业的的jar文件,打包命令:

    mvn package –DskipTests      //–DskipTests 跳过测试的意思

    (2)设置路径

    作业jar包路径,依赖库路径,HADOOP_CLASS定义的类路径。

    (3)启动作业

    hadoop jar hadoop-examples.jar v2.MaxTempertureDrive –conf conf/Hadoop-cluster.xml -jt local input/ncdc/all output

    1.1.2         作业ID任务ID和任务尝试ID

    作业ID由资源管理器创建的YARN的应用ID生成。Application_14112131314234_0003,资源管理器开始时间戳,0003是资源管理器自动分配的增量ID,下一个应用就是0004。将application替换为job,即为作业ID:job_14112131314234_0003。任务属于作业,任务ID: task_14112131314234_0003_m_000004表示作业的第5个map任务(000004,从0开始计数);任务执行会失败,所以有多个任务尝试ID,attempt_14112131314234_0003_m_000004_0表示第一次尝试(任务id从0计数)

    1.1.3         Mapreduce的web界面

    Web界面用于查看作业进度,日志统计信息。http://10.22.2.3:8088

    点击Nodes会显示集群的服务器,显示内存总额。内存剩余,Vcore使用和剩余量。点击左侧的application,可以看到正在运行的应用。作业历史文件由mapreduce的application master保存在HDFS中,路径由参数mapreduce.jobhistory.done-dir属性设置。点击应用列表中一个, 可以查看应用的详细信息。

    执行完成后,会在max-temp文件夹生成多个文件。可以用hadoop fs –getmerger max-temp max-temp-local 命令将多个文件合并为一个文件。然后用sort max-temp-local | tail命令来查看排序后的值。

    1.1.4         作业调试

    获取的天气温度大于100则认为是不正常的温度,需要将记录过滤出来。在map函数中需要对温度做一个判断和日志输出。

    enum Temperature{

    OVER_100

    }

    if(airTemperature>1000)

    {

    System.err.println(“temperature over 100 degrees for input ”+value);//输出完整行到标准错误输出。

    Context.setStatus(“detected possibly corrupt record :see log.”);//在8808界面的application最后一列Teacking UI ,点击application master 进入job界面,job界面下有map连接,点击进入map任务界面,在status状态列可以看到这条日志。

    Content.getCounter(Temperatue.OVER_100.increment(1));//将计数器的值加1,统计。在web界面或者命令行输入 mapred job –counter job_12324543245_0006 v3.MaxtempratureMapper&Temperature’ OVER_100  可以输出计数器的值。

    }

    1.1.5         Hadoop 日志

    Yarn有个日志聚合服务,将任务日志搬移到HDFS,存储在容器文件中。服务可yarn.log-aggregation-enable设置为true,可以在任务尝试web界面查看logs连接。或者用mapred job –logs命令查看。

    通常日志聚合服务为关闭状态,可以通过http://node-manage-host/8042/logs/userlogs查看任务日志。

    可以用Apache Common Logging API将日志写入任务的系统日志syslog中

    private static log Log=LogFactory.getLog(LoggingIdentityMapper.class);

    Log.Info(“Map key: ”+key);

    日志级别可以通过命令设置

    % hadoop jar hadoop-examples.jar LogingDriver –conf conf/Hadoop-cluster.xml –D mapreduce.map.log.level=DEBUG input/ncdc/sample.txt logging –out

    1.1.6         远程调试

    任务执行失败,可以将执行失败的文件复制到本地,用jvm调试运行。需要阿寂静mapreduce.task.files.preserve.failedtasks设为true来保存失败的任务文件。

    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

    https://www.cnblogs.com/bclshuai/p/11380657.html

  • 相关阅读:
    MySql 用户 及权限操作
    MAC 重置MySQL root 密码
    在mac系统安装Apache Tomcat的详细步骤[转]
    Maven:mirror和repository 区别
    ES6 入门系列
    转场动画CALayer (Transition)
    OC 异常处理
    Foundation 框架
    Enum枚举
    Invalid App Store Icon. The App Store Icon in the asset catalog in 'xxx.app' can’t be transparent nor contain an alpha channel.
  • 原文地址:https://www.cnblogs.com/bclshuai/p/12168746.html
Copyright © 2011-2022 走看看