TaskTracker

hadoop基础知识总结

自古美人都是妖i 提交于 2021-01-13 08:36:49
Hadoop 是一个由 Apache基金会所开发的 分布式系统 基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。 Hadoop生态圈: MapReduce: 分布式计算框架 Yarn: 集群资源管理和调度平台 Hdfs: 分布式文件系统 Hive: 数据仓库 HBase: 实时分布式数据库 Flume: 日志收集工具 Sqoop: 数据库 ETL工具 Zookeeper: 分布式协作服务 Mahout: 数据挖掘库 Hadoop由4个主要构成部分: 1) 基础核心:提供基础的通用的功能, 一组分布式文件系统和通用 I/O的组件与接口(序列化、Java RPC和持久化数据结构) 2) HDFS:分布式存储, 高容错性适合部署在廉价的机器上。 HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序,HDFS块的默认大小64 MB 3) MapReduce:分布式计算 4) YARN:资源分配(多个任务是排队执行还是同时执行) HDFS由3种主要的节点构成: 1) NameNode :用来存储数据的存放位置等元数据(不存放数据)(如文件名、文件大小、文件所在目录、所有者名称、读写执行权限等) 2) DataNode :只用来存储数据 3)

面试 | mr的的那些事儿

五迷三道 提交于 2020-11-30 00:56:26
|转载自:简书 |原文链接: http://www.jianshu.com/p/c97ff0ab5f49 简介 Apache Hadoop 是一个开源软件框架,可安装在一个商用机器集群中,使机器可彼此通信并协同工作,以高度分布式的方式共同存储和处理大量数据。最初,Hadoop 包含以下两个主要组件:Hadoop Distributed File System (HDFS) 和一个分布式计算引擎,该引擎支持以 MapReduce 作业的形式实现和运行程序。 MapReduce 是 Google 推广的一个简单的编程模型,它对以高度并行和可扩展的方式处理大数据集很有用。MapReduce 的灵感来源于函数式编程,用户可将他们的计算表达为 map 和 reduce 函数,将数据作为键值对来处理。Hadoop 提供了一个高级 API 来在各种语言中实现自定义的 map 和 reduce 函数。 Hadoop 还提供了软件基础架构,以一系列 map 和 reduce 任务的形式运行 MapReduce 作业。Map 任务 在输入数据的子集上调用 map 函数。在完成这些调用后,reduce 任务 开始在 map 函数所生成的中间数据上调用 reduce 任务,生成最终的输出。 map 和 reduce 任务彼此单独运行,这支持并行和容错的计算。 最重要的是,Hadoop

Hadoop 学习笔记 05 之 MapReduce 浅析

本小妞迷上赌 提交于 2020-10-30 07:37:43
阅读文本大概需要 4 分钟。 简介: 每一项新技术都是为了解决某个痛点,随着数据量指数型得增长,面对海量的数据技术,虽然存储用 Hadoop 的 HDFS 文件系统解决,但没初加工的数据如同一堆刚从矿场运出来的矿砂,价值度低。 那么该如何处理海量的数据呢,比如分析某个时间段订单量 / 某个地区的几十年的温度?为了解决这个问题,不得不介绍 Map reduce 这个框架。 一 、Mapreduce 简单介绍 官话: MapReduce 是一个分布式计算模型框架,由两个阶段组成:Map和Reduce。 主要用于搜索领域,解决海量数据的计算问题,只需要实现 Map() 和 Reduce() 两个函数即可。 通俗理解: 好比家里一堆家务活,全部给一个人做可能一整天都弄不完,于是分工,老二(Map)负责清洗碗筷,老幺(Map)负责拖地,于是很快就搞定了;老大负责检查(Reduce 汇总)。这就是MapReduce 把任务分解再汇总。 二、Mapreduce 工作(流程)原理 我分两个版本解读,第一个是正式版,第二个是故事版 正式版例子 (中文版) (英文版) 粗略的讲,MapReduce 的工作流程分为: map task ( Map 任务) 与 reduce task (Reduce 任务)。 map task: 1、把一个(或多个)需要处理的文件(block) 按 spill

Hadoop V2 yarn与Hadoop V1 MapReduce对比

为君一笑 提交于 2020-10-25 10:43:22
对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架 1、Hadoop v1 1.1 Hadoop v1 MapReduce 架构图 1.2 Hadoop v1 MapReduce程序的流程及设计思路 首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败、重启等操作。 TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。 TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过 heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。上图虚线箭头就是表示消息的发送 - 接收的过程。 1.3 Hadoop v1 MapReduce程序问题 JobTracker 是 Map-reduce 的集中处理点,存在单点故障。 JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job

MapReduce Shuffle 和 Spark Shuffle 原理概述

蓝咒 提交于 2020-05-08 19:57:34
##Shuffle简介 Shuffle的本意是洗牌、混洗的意思,把一组有规则的数据尽量打乱成无规则的数据。而在MapReduce中,Shuffle更像是洗牌的逆过程,指的是将map端的无规则输出按指定的规则“打乱”成具有一定规则的数据,以便reduce端接收处理。其在MapReduce中所处的工作阶段是map输出后到reduce接收前,具体可以分为map端和reduce端前后两个部分。 在shuffle之前,也就是在map阶段,MapReduce会对要处理的数据进行分片(split)操作,为每一个分片分配一个MapTask任务。接下来map会对每一个分片中的每一行数据进行处理得到键值对(key,value)此时得到的键值对又叫做“中间结果”。此后便进入reduce阶段,由此可以看出Shuffle阶段的作用是处理“中间结果”。 由于Shuffle涉及到了磁盘的读写和网络的传输,因此Shuffle性能的高低直接影响到了整个程序的运行效率。 ##MapReduce Shuffle Hadoop的核心思想是MapReduce,但shuffle又是MapReduce的核心。shuffle的主要工作是从Map结束到Reduce开始之间的过程。shuffle阶段又可以分为Map端的shuffle和Reduce端的shuffle。 ###Map端的shuffle 下图是MapReduce

深入浅出MapReduce运行流程

China☆狼群 提交于 2020-05-01 22:57:31
开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密。这个可能是我做技术研究的思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不可分,所以当我写分布式文件系统时候,总是感觉自己的理解肤浅,今天我开始写mapreduce了,今天写文章时候比上周要进步多,不过到底能不能写好本文了,只有试试再说了。   Mapreduce 初析   Mapreduce是一个计算框架,既然是做计算的框架,那么表现形式就是有个输入(input),mapreduce操作这个输入(input),通过本身定义好的计算模型,得到一个输出(output),这个输出就是我们所需要的结果。   我们要学习的就是这个计算模型的运行规则。在运行一个mapreduce计算任务时候,任务过程被分为两个阶段:map阶段和reduce阶段,每个阶段都是用键值对(key/value)作为输入(input)和输出(output)。而程序员要做的就是定义好这两个阶段的函数:map函数和reduce函数。   Mapreduce

大数据Hadoop之 YARN认识

会有一股神秘感。 提交于 2019-12-07 10:17:44
大数据Hadoop之 YARN认识 2 Yarn是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率,这些资源包括内存、IO、网络、磁盘等。其产生的原因是为了解决原MapReduce框架的不足。 Yarn是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率,这些资源包括内存、IO、网络、磁盘等。其产生的原因是为了解决原MapReduce框架的不足。 最初MapReduce的committer们还可以周期性的在已有的代码上进行修改,可是随着代码的增加以及原MapReduce框架设计的不足,在原MapReduce框架上进行修改变得越来越困难, 所以MapReduce的committer们决定从架构上重新设计MapReduce,使下一代的MapReduce(MRv2/Yarn)框架具有更好的扩展性、可用性、可靠性、向后兼容性和更高的资源利用率以及能支持除了MapReduce计算框架外的更多的计算框架。 1、MapReduce框架的不足 现在比较流行的说法是jobtracker的问题,比如单点故障,任务过重。但除了Jobtracker,同时还有一个TaskTracker。我们看下图: JobTacker概述 JobTacker其承担的任务有:接受任务、计算资源、分配资源、与DataNode进行交流。 在hadoop中每个应用程序被表示成一个作业

阿里巴巴飞天大数据架构体系与Hadoop生态系统

♀尐吖头ヾ 提交于 2019-11-29 10:05:39
很多人问阿里的飞天大数据平台、云梯2、MaxCompute、实时计算到底是什么,和自建Hadoop平台有什么区别。 先说Hadoop 什么是Hadoop? Hadoop是一个开源、高可靠、可扩展的分布式大数据计算框架系统,主要用来解决海量数据的存储、分析、分布式资源调度等。Hadoop最大的优点就是能够提供并行计算,充分利用集群的威力进行高速运算和存储。 Hadoop的核心有两大板块:HDFS和MapReduce。 HDFS全称Hadoop Distributed File System,是一种分布式文件存储系统。分布式文件系统是指将固定于某个地点的某个文件系统,扩展到任意多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。HDFS有着高容错性,可以部署在低廉的硬件;提供高吞吐量来访问应用程序的数据;可以有效解决超大数据量存储和管理难题的分布式文件系统属性的特点。因此HDFS天然适合有着超大数据集的应用程序,或者说本身就是为超大规模数据量处理的应用程序而设计的。 MapReduce是一个分布式离线并行计算框架,能够对大数据集进行并行处理

阿里巴巴飞天大数据架构体系与Hadoop生态系统

送分小仙女□ 提交于 2019-11-29 10:05:05
很多人问阿里的飞天大数据平台、云梯2、MaxCompute、实时计算到底是什么,和自建Hadoop平台有什么区别。 先说Hadoop 什么是Hadoop? Hadoop是一个开源、高可靠、可扩展的分布式大数据计算框架系统,主要用来解决海量数据的存储、分析、分布式资源调度等。Hadoop最大的优点就是能够提供并行计算,充分利用集群的威力进行高速运算和存储。 Hadoop的核心有两大板块:HDFS和MapReduce。 HDFS全称Hadoop Distributed File System,是一种分布式文件存储系统。分布式文件系统是指将固定于某个地点的某个文件系统,扩展到任意多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。HDFS有着高容错性,可以部署在低廉的硬件;提供高吞吐量来访问应用程序的数据;可以有效解决超大数据量存储和管理难题的分布式文件系统属性的特点。因此HDFS天然适合有着超大数据集的应用程序,或者说本身就是为超大规模数据量处理的应用程序而设计的。 MapReduce是一个分布式离线并行计算框架,能够对大数据集进行并行处理

【Hadoop】- Hadoop1.x 完全分布式环境搭建

主宰稳场 提交于 2019-11-29 06:20:46
环境: 1台NameNode服务器,2台DataNode服务器 安装步骤 ①:配置/etc/hosts文件:实现集群内部的DNS解析,无需查询DNS服务器,当访问远程主机时首先查询hosts文件是否有配置,如果配置则直接按照指定的IP直接访问远程主机(实际规模较大的hadoop集群一般会配置DNS服务器进行统一管理) 修改linux主机的主机名:/etc/sysconfig/network文件的HOSTNAME字段的值即可(注意重启才可永久生效) hostname newName:重启之后就会失效 hosts文件:注意每个节点最好共享同1份hosts文件 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.174.142 NameNode 192.168.174.143 DataNode_01 192.168.174.145 DataNode_02 测试hosts文件: [squirrel@DataNode_02 ~]\$ ping DataNode_01 PING DataNode_01 (192.168.174.143)