Hadoop
文章平均质量分 79
xinxing_Star
这个作者很懒,什么都没留下…
展开
-
Hadoop 知识点安排
Hadoop 测试 Hadoop 测试 MRUnit单元测试Mapper和Reducer类在内存上独立运行, PipelineMapReduceDriver单线程运行. LocalJobRunner单线程运行, 且仅有一个 Reducer能够启动conf.set("mapred.job.tracker", "local"); conf.set("fs.default.name", "file:////"); FileSystem fs = FileSystem.getLocal(conf); Min原创 2021-09-07 11:12:48 · 75 阅读 · 0 评论 -
Hadoop IO
Hadoop IO Hadoop - IO 输入文件从HDFS进行读取. 输出文件会存入本地磁盘. Reducer和Mapper间的网络I/O,从Mapper节点得到Reducer的检索文件. 使用Reducer实例从本地磁盘回读数据. Reducer输出- 回传到HDFS. 串行化 传输、存储都需要 Writable接口 Avro框架:IDL,版本支持,跨语言,JSON-linke 压缩 能够减少磁盘的占用空间和网络传输的量 Compressed Size, Speed, Spli原创 2021-09-07 11:12:57 · 170 阅读 · 0 评论 -
Hadoop 编程
Hadoop 编程 MapReduce - 编程 处理 select:直接分析输入数据,取出需要的字段数据即可 where: 也是对输入数据处理的过程中进行处理,判断是否需要该数据 aggregation:min, max, sum group by: 通过Reducer实现 sort join: map join, reduce join Third-Party Libraries export LIBJARS=$MYLIB/commons-lang-2.3.jar, hadoop ja原创 2020-06-30 10:11:12 · 508 阅读 · 0 评论 -
Java 数据结构
Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties) 以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),我们后面再讨论。 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构原创 2020-06-30 09:35:44 · 93 阅读 · 0 评论 -
Hadoop Shuffle
Hadoop Shuffle MapReduce - Shuffle 对Map的结果进行排序并传输到Reduce进行处理 Map的结果并不是直接存放到硬盘,而是利用缓存做一些预排序处理 Map会调用Combiner,压缩,按key进行分区、排序等,尽量减少结果的大小 每个Map完成后都会通知Task,然后Reduce就可以进行处理 Map端 当Map程序开始产生结果的时候,并不是直接写到文件的,而是利用缓存做一些排序方面的预处理操作 每个Map任务都有一个循环内存缓冲区(默认100MB),当缓原创 2020-06-30 09:34:11 · 104 阅读 · 0 评论 -
Hadoop Container
Hadoop Container YARN - Container 基本的资源单位(CPU、内存等) Container可以加载任意程序,而且不限于Java 一个Node可以包含多个Container,也可以是一个大的Container ApplicationMaster可以根据需要,动态申请和释放Container ...原创 2020-06-30 09:33:09 · 185 阅读 · 0 评论 -
Hadoop Mapper——直接上代码
Hadoop Mapper MapReduce - Mapper 主要是读取InputSplit的每一个Key,Value对并进行处理 public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> { /** * 预处理,仅在map task启动时运行一次 */ protected void setup(Context context) throws IOException, InterruptedExc原创 2020-06-30 09:34:33 · 97 阅读 · 0 评论 -
Hadoop 读取数据
Hadoop 读取数据 MapReduce - 读取数据 通过InputFormat决定读取的数据的类型,然后拆分成一个个InputSplit,每个InputSplit对应一个Map处理,RecordReader读取InputSplit的内容给Map InputFormat 决定读取数据的格式,可以是文件或数据库等 功能 验证作业输入的正确性,如格式等 将输入文件切割成逻辑分片(InputSplit),一个InputSplit将会被分配给一个独立的Map任务 提供RecordReader实现原创 2020-06-30 09:35:02 · 591 阅读 · 0 评论 -
Hadoop MapReduce
Hadoop MapReduce Hadoop - MapReduce 简介 一种分布式的计算方式指定一个Map(映#x5C04;)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组 Pattern map: (K1, V1) → list(K2, V2) combine: (K2, list(V2)) → list(K2, V2) reduce: (K2, list(V2)) → list(K3, V3) Map原创 2020-06-30 09:35:55 · 138 阅读 · 0 评论 -
Hadoop Failover
Hadoop Failover YARN - Failover 失败类型 程序问题 进程崩溃 硬件问题 失败处理 任务失败 运行时异常或者JVM退出都会报告给ApplicationMaster 通过心跳来检查挂住的任务(timeout),会检查多次(可配置)才判断该任务是否失效 一个作业的任务失败率超过配置,则认为该作业失败 失败的任务或作业都会有ApplicationMaster重新运行 ApplicationMaster失败 ApplicationMaster定时发送心跳信号到Re原创 2020-06-30 09:34:44 · 211 阅读 · 0 评论 -
Hadoop ApplicationMaster
Hadoop ApplicationMaster YARN - ApplicationMaster 单个作业的资源管理和任务监控 具体功能描述: 计算应用的资源需求,资源可以是静态或动态计算的,静态的一般是Client申请时就指定了,动态则需要ApplicationMaster根据应用的运行状态来决定 根据数据来申请对应位置的资源(Data Locality) 向ResourceManager申请资源,与NodeManager交互进行程序的运行和监控,监控申请的资源的使用情况,监控作业进度 跟原创 2020-06-29 14:36:01 · 335 阅读 · 0 评论 -
Hadoop ResourceManager
Hadoop ResourceManager YARN - ResourceManager 负责全局的资源管理和任务调度,把整个集群当成计算资源池,只关注分配,不管应用,且不负责容错 资源管理 以前资源是每个节点分成一个个的Map slot和Reduce slot,现在是一个个Container,每个Container可以根据需要运行ApplicationMaster、Map、Reduce或者任意的程序 以前的资源分配是静态的,目前是动态的,资源利用率更高 Container是资源申请的单位,一原创 2020-06-29 14:30:42 · 206 阅读 · 0 评论 -
Hadoop YARN
Hadoop YARN HadoopHadoop - YARN 旧的MapReduce架构 JobTracker:负责资源管理,跟踪资源消耗和可用性,作业生命周期管理(调度作业任务,跟踪进度,为任务提供容错) TaskTracker:加载或关闭任务,定时报告任务状态 此架构会有以下问题: JobTracker是MapReduce的集中处理点,存在单点故障 JobTracker完成了太多的任务,造成了过多的资源消耗,当MapReduce job 非常多的时候,会造成很大的内存开销。这也是...原创 2020-06-29 11:35:48 · 135 阅读 · 0 评论 -
Hadoop 命令工具
Hadoop 命令工具 HDFS - 命令工具 fsck: 检查文件的完整性 start-balancer.sh: 重新平衡HDFS hdfs dfs -copyFromLocal 从本地磁盘复制文件到HDFS原创 2020-06-29 11:26:08 · 120 阅读 · 0 评论 -
Hadoop 可靠性
Hadoop 可靠性 HDFS - 可靠性 DataNode可以失效 DataNode会定时发送心跳到NameNode。如果一段时间内NameNode没有收到DataNode的心跳消息,则认为其失效。此时NameNode就会将该节点的数据(从该节点的复制节点中获取)复制到另外的DataNode中 数据可以毁坏 无论是写入时还是硬盘本身的问题,只要数据有问题(读取时通过校验码来检测),都可以通过其他的复制节点读取,同时还会再复制一份到健康的节点中 NameNode不可靠 ...原创 2020-06-29 11:25:15 · 350 阅读 · 0 评论 -
Hadoop 读文件
Hadoop 读文件 HDFS - 读文件 客户端向NameNode发送读取请求 NameNode返回文件的所有block和这些block所在的DataNodes(包括复制节点) 客户端直接从DataNode中读取数据,如果该DataNode读取失败(DataNode失效或校验码不对),则从复制节点中读取(如果读取的数据就在本机,则直接读取,否则通过网络读取) ...原创 2020-06-29 11:11:40 · 106 阅读 · 0 评论 -
Hadoop 写文件
HDFS - 写文件 1.客户端将文件写入本地磁盘的HDFS Client文件中 2.当临时文件大小达到一个block大小时,HDFS client通知NameNode,申请写入文件 3.NameNode在HDFS的文件系统中创建一个文件,并把该block id和要写入的DataNode的列表返回给客户端 4.客户端收到这些信息后,将临时文件写入DataNodes 4.1 客户端将文件内容写入第一个DataNode(一般以4kb为单位进行传输) 4.2 第一个DataNode接收后,将数据写原创 2020-06-29 11:10:34 · 813 阅读 · 0 评论 -
Hadoop HDFS
Hadoop - HDFS 简介 Hadoop Distributed File System,分布式文件系统 架构 Block数据块; 基本存储单位,一般大小为64M(配置大的块主要是因为:1)减少搜寻时间,一般硬盘传输速率比寻道时间要快,大的块可以减少寻道时间;2)减少管理块的数据开销,每个块都需要在NameNode上有对应的记录;3)对数据块进行读写,减少建立网络的连接成本) 一个大文件会被拆分成一个个的块,然后存储于不同的机器。如果一个文件少于Block大小原创 2020-06-29 11:06:45 · 81 阅读 · 0 评论 -
Hadoop简介
Hadoop - 简介 Hadoop可运行于一般的商用服务器上,具有高容错、高可靠性、高扩展性等特点 特别适合写一次,读多次的场景 适合 大规模数据 流式数据(写一次,读多次) 商用硬件(一般硬件) 不适合 低延时的数据访问 大量的小文件 频繁修改文件(基本就是写1次) Hadoop架构 HDFS:分布式文件存储 YARN:分布式资源管理 MapReduce:分布式计算 Others:利用YARN的资源管理功能实现其他的数据处理方式 内部各个节点基本都是采用Master...原创 2020-06-29 10:55:29 · 86 阅读 · 0 评论 -
关于Hadoop
铺垫 人产生数据的速度越来越快,机器则更加快,more data usually beats better algorithms,所以需要另外的一种处理数据的方法。 硬盘的容量增加了,但性能没有跟上,解决办法是把数据分到多块硬盘,然后同时读取。但带来一些问题: 硬件问题:复制数据解决(RAID) 分析需要从不同的硬盘读取数据:MapReduce 而Hadoop提供了 1.可靠的共享存储(分布式存储) 2.抽象的分析接口(分布式分析) 大数据 概念 不能使用一台机器进行处理的数据 大数据的核原创 2020-06-29 10:52:28 · 132 阅读 · 0 评论