hadoop 计数器,hadoop


一、hadoop有很多自带的计数器,相信看过运行log的都会看到各种数据 二、用户自定义计数器 在开发中经常需要记录错误的数据条数,就可以用计数器来解决。

1、定义:用一个枚举来定义一组计数器,枚举中的每个元素都是一个计数器

在main类中定义

enum RecordsCounter{
    RIGHT_COUNTER,
    WRONG_COUNTER
  };

2、使用 在map和reduce端均可使用,job会在技术后收集数据。 在需要记录的地方:
context.getCounter(RecordsCounter.WRONG_COUNTER).increment(1);

在run函数中,在job执行完后得到结果:

Counters counters = job.getCounters();
Counter counter = counters.findCounter(RecordsCounter.WRONG_COUNTER);
Long wrongCount = counter.getValue();



我用hadoop运行自带的词频统计程序map与reduce始终为0%,这是什原因?上面的警告也没看懂,解释

看一下hadoop中的配置文件core-site.xml
在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:

<property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
Hadoop默认的配置为启用本地库。
有可能是这个问题:hadoop本地库版本与服务器版本不一样的问题,形成死循环。
 

Hadoop与云计算有什关系?

Hadoop现在已经广泛应用于包 括 FaceBook,Twitter, Yahoo! 等公司,通常情况下这些机群包括数以千计的服务器和数以万计的CPU。Hadoop 作为基础云计算平台 ,包括了超过 100 个的用户可配置参数 ( 版本 0.19.2) , 而这些参数中很大一部分对所部署的 Hadoop 系统性能具有极大的影响。平台即服务 (PaaS)主要关注软件框架或服务,提供在基础设施中进行“云”计算所用的 API。Apache Hadoop作为PaaS构建在虚拟主机上,作为云计算平台。基于Hadoop,用户可编写处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。Hadoop 已被全球几大IT公司用作其云计算环境中的重要基础软件,如:雅虎正在开发基于Hadoop的开源项目Pig, 这是一个专注于海量数据集分析的分布式计算程序。
 

相关内容