资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cnHadoopHadoop 之之 MapReduceMapReduce 全解析全解析_ _光环大数据培训光环大数据培训hadoop 基础基础1. Hadoop 集群的配置安装(非安全模式)集群的配置安装(非安全模式)1. 重要的配置文件:(1)Read-only default configuration: core-default.xml hdfs-default.xml yarn-default.xml mapred-default.xml (2)Site-specific configuration: etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml etc/hadoop/yarn-site.xml etc/hadoop/mapred-site.xml (3)Hadoop Daemon Configuration: HDFS daemons: NameNode SecondaryNameNode DataNode YARN damones: ResourceManager NodeManager WebAppProxy2. 配置 Hadoop Daemons 的环境变量DaemonEnvironment VariableNameNodeHADOOP_NAMENODE_OPTSDataNodeHADOOP_DATANODE_OPTSSecondaryNameNodeHADOOP_SECONDARYNAMENODE_OPTSResourceManagerYARN_RESOURCEMANAGER_OPTSNodeManagerYARN_NODEMANAGER_OPTSWebAppProxyYARN_PROXYSERVER_OPTSMap Reduce Job History ServerHADOOP_JOB_HISTORYSERVER_OPTS3.Hadoop Daemon 配置DaemonEnvironment VariableResourceManagerYARN_RESOURCEMANAGER_HEAPSIZENodeManagerYARN_N ODEMANAGER_HEAPSIZEWebAppProxyYARN_PROXYSERVER_HEAPSIZEMap Reduce Job History ServerHADOOP_JOB_HISTORYSERVER_HEAPSIZE4.HDFS 相关操作光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cnhadoop fs - appendToFile - cat - chgrp chmod chown - copyFromLocal copyToLocal - count - cp - df du dus - find - get - help - ls lsr - mkdir - moveFromLocal - moveToLocal - mv - put - rm rmdir rmr - touchz - usage2.MapReduce 理论和实践理论和实践MapReduce 的输入输出类型 (input) - map - - combine - - reduce - (output)1.Mapper:1.多少个 Map 合适?Map 的数量是根据输入的总大小确定的,也就是输入文件的总块数最佳实践:每个节点 10100 个 map2.Reducer:实现将 Map 的输出结果按照相同 key 进行归约为更小的值的集合 1. 三个阶段:1)Shuffle通过 HTTP 协议取得所以 Mapper 输出结果的相关分区2)Sort通过 key 对 Reducer 的输入进行分组3)reduceReducer 的输出结果通过 write 写入到文件系统中Reducer 的输出没有被排序2. Reduce 的数量0.95/1.75*(节点数 * 每个节点最大的容器数量)如果设置为 0,Mapper 的输出结果直接写入文件系统3. Partitioner控制 map 输出结果中 key 的分区HashPartitioner 是默认的 Partitioner4. CounterMapper 和 Reducer 中实现计数的工具 3. Job 的配置 1. Job 中可以实现的配置执行 Mapper、Combiner、Partitioner、Reducer、InputFormat、OutputFormat 的实现类 2. FileInputFormat 显示输入文件的集合FileInputFormat.setInputPaths(Job, Path)FileInputFormat.addInputPath(Job, Path)FileInputFormat.setInputPaths(Job, String)FileInputFormat.addInputPaths(Job, String) 3. FileOutputFormat 显示输入文件的集合FileOutputFormat.setOutputPaths(Job, Path)FileOutputFormat.addOutputPath(Job, Path)FileOutputFormat.setOutputPaths(Job, String)FileOutputFormat.addOutputPaths(Job, String) 4. 其他配置comparator、DistributedCache、Compress、Execute Manner、MaxMapAttempts可以使用 Configuration.set(String,String)实现配置 4.任务的执行和环境 1. 内存管理 用户/管理员可以指定加载子任务时的最大虚拟内存 2. Map 的参数 Map 输出的结果将会被序列化到缓冲区中,元数据将被存储在缓冲区中 当 Map 持续有输出结果时,序列化的缓冲区或者元数据超出了临界值,此时缓冲区中的数据将被排序并写入到磁盘中 3. Shuffle/Reduce 参数 每一个 Reduce 通过 Partitioner 使用 HTTP 分区到内存中,再定期地合并这些数据到磁盘中 如果 Map 的输出结果被压缩了,那么么一个输出都将被压缩到内存中 5.Job 的提交和监控1. 检查 Job 规格的输入输出2. 为 Job 计算 InputSplit 的值3. 为 Job 的分布式缓存设置必要的叙述信息(可选)4. 复制 Job 的 Jar 和配置文件到文件系统的 MapReduce 的系统目录5. 提交 Job 到 ResourceManager 以及监控 Job 的状态(可选)用户和查看执行的历史记录:$ mapred job -history output.jhist$ mapred job -history all output.jhist总而言之,用户使用 Job 创建应用、描述 Job 的详细信息、提交 Job、监控 Job 的运行状态 6. JobControl 1. Job.submmit():提交任务到集群并立即返回 2. Job.waitForCompletion(boolean):提交任务到集群,并等待执行完成 7. Job 的输入1. InputFormat 描述了 MapReduce 的 Job 的指定输入1. 验证 Job 指定的输入2. 将输入文件切分成逻辑上的 InputSplit 的实例,每一个实例再分配给独立的 Mapper3. 提供 RecodeReader 的实现类来收集被 Mapper 处理的逻辑 InputSplit 输入记录4. InputFormat 的默认实现类是:TextInputFormat 2. InputSplit1. 代表的是被每一个独立的 Mapper 处理后的数据2. 代表的是面向类型的输入视图3. FileSplit 是默认的 IputSplit 3. RecodeReader1. 从 InputSplit 中读取对2. 将由 InputSplit 提供的面向类型的输入视图转换成 Mapper 的实现类进行处理 8. Job 的输出 1. OutputFormat 描述了 MapReduce 的 Job 的指定输出 1. 验证 Job 指定的输出,如:检查 Job 的输出目录是否存在 2. 提供 RecodeWriter 实现类用来写 Job 的输出文件,存储在文件系统中 3. OutputFormat 的默认实现类是:TextOutputFormat 2. OutputCommitter 1. 描述的是 MapReduce 的 Job 的指定的输出 2.处理过程 1. 在初始化期间设置 Job,如:在 Job 的初始化期间创建临时的输出目录 2. 在 Job 执行完成后清理 Job,如:在 Job 执行完成之后,移除临时目录 3. 设置任务的临时输出目录,在任务的初始话阶段完成 4. 测是否有任务需要提交 5. 任务输出的提交 6. 丢弃任务的提交.如果任务已经失败或者进程被杀掉,则输出将会被清理,如果这个任务没有被清理,则另外一个带有相同 attempt-id 的任务将会被加载执行清理 3. OutputCommitter 默认的实现类是 FileOutputCommitter,Job 初始化/清理任务在 Map 和 Reduce 容器中 3. RecodeWriter 1. 将 output对写到输出文件中 2. RecodeWriter 的实现类将 Job 的输出写入到文件系统中 9. 其他有用的特性 1. 提交 Job 到队列中 1.队列作为 Job 的集合,允许系统提供指定的功能,例如:队列使用 ACLs 控制哪个用户可以提交 Job 2. Hadoop 有一个强制的队列,称为 default.队列的名称在 Hadoop 的配置文件中进行定义mapreduce.job.queuename 3. 定义队列的方式 1. 设置 mapreduce.job.queuen
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号