概述
Hadoop Archive是Hadoop官方提供的解决HDFS上小文件过多的一种方案。可以通过如下命令来执行生成har文件:
|
1 |
hadoop archive -archiveName foo.har -p /user/hadoop -r 3 dir1 dir2 /user/zoo |
执行archive命令会提交一个MapReduce任务来生成har文件。在了解har文件…
Hadoop Archive是Hadoop官方提供的解决HDFS上小文件过多的一种方案。可以通过如下命令来执行生成har文件:
|
1 |
hadoop archive -archiveName foo.har -p /user/hadoop -r 3 dir1 dir2 /user/zoo |
执行archive命令会提交一个MapReduce任务来生成har文件。在了解har文件…
通过HA访问Hdfs的时候如何获取到活跃节点是一个稍稍有些麻烦的事情。
目前使用过两种方案:一是通过webhdfs接口逐一访问测试,找到状态为可用的节点;一是在zookeeper上直接获取当前活跃的节点。
简单说下第二种方案。ha的ActiveNode在zookeeper上的存储节点为:/hadoop-ha/dcnameservice/ActiveStandby…
yarn一个基本理念就是将JobTracker的两大主要功能——资源管理和作业调度/监控——分割开来成为两个独立的守护进程。在这个方案里,有一个全局的ResourceManager (RM)和对应每个应用的ApplicationMaster (AM)。一个应用可以是一个独立作业,也可以是多个作业构成的DAG(有向无环图,Directed Acyclic Graph)…
yarn命令是调用的bin/yarn脚本。执行yarn命令时如果不带上参数信息则会打印yarn命令的帮助信息。
yarn命令的用法:
|
1 |
yarn [--config confdir] [COMMAND | CLASSNAME] |
yarn有一个命令参数解析框架,可以用来解析通用命令参数以及运行类。命令参数及描述如下表:
| –config confdir | 覆盖 |
这里是一个更完整的WordCount实例。在这个实例中使用了很多前面提到的MapReduce框架的特性。
这个实例需要HDFS支持运行,尤其是关于DistributedCache的一些特性。因此,这个实例只能运行于伪分布式或者完全分布式安装的Hadoop上。
看下源代码:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 |
用户将作业提交到队列。队列是作业的集合,允许系统添加特定的功能,比如,队列通过ACL决定哪些用户可以提交作业。通常主要由Hadoop调度器使用队列。
Hadoop的配置信息使用了一个单独的托管队列,被称为“default”。队列的名称是由mapreduce.job.queuename定义的(Hadoop的site配置)。一些作业调度器支持多重队列…
InputFormat描述了MapReduce作业的输入规范。
MapReduce框架根据MapReduce作业的InputFormat来做这些事情:
一个Job就表示了一个MapReduce的作业配置。
Job是用户向Hadoop框架描述一个MapReduce作业如何执行的最主要的接口。框架会尽力按Job的描述去忠实地执行一个作业,但是:
这一部分内容会适当深入说明用户即将面对的MapReduce框架的各个环节。这有助于用户从一个更细的粒度地去实现、配置、调优作业。
我们先看看Mapper和Reducer接口。通常应用程序实现这两个接口需要提供map和reduce方法。
然后我们会讨论下其他的核心接口,包括Job,Partitioner,InputFormat,OutputFormat等接口。
最后…
Hadoop Mapreduce是一个简单易用的框架。基于MapReduce写出来的程序能够运行在由上千台商用机器组成的大型集群上,以一种可靠的容错的方式并行处理T级别的海量数据。
一个MapReduce作业通常会把输入的数据集拆分成独立的块,由map任务(task)以完全并行的方式处理。框架先对map的输出结果进行排序,排好序的结果会做为reduce任务的…