Hadoop
文章平均质量分 90
介绍hadoop的一些东西
火成哥哥
这个作者很懒,什么都没留下…
展开
-
Hadoop 优化
一、MapReduce 跑得慢的原因1、计算机性能CPU、内存、磁盘健康、网络2、I/O 操作优化(1) 数据倾斜(2) Map 和 Reduce 数设置不合理(3) Map 运行时间太长,导致 Reduce 等待过久(4) 小文件过多(5) 大量的不可分块的超大文件(6) spill 次数过多(8) Merge 次数过多等二、MapReduce 优化方法MapReduce...原创 2020-04-04 08:17:10 · 958 阅读 · 0 评论 -
Hadoop HA active namenode 宕机无法自动切换到 standby namenode
一、问题产生搭建完 hadoop-HA 集群后,尝试了一下 kill 掉 active namenode 的进程发现可以快速的进行自动故障转移。在下午我准备尝试一下,直接将 active namenode 所在机器关机,用来模拟因为磁盘故障等物理因素导致服务器宕机的情况。但是发现,将 active namenode 关机后,standby namenode 无法自动故障转移,仍然是 standy...原创 2020-03-13 16:35:18 · 3127 阅读 · 2 评论 -
Hadoop环境搭建之HA模式
一、Hadoop HA 概述1、HA(High Available),即高可用(不能中断服务)。2、实现高可用最关键的策略是消除单点故障。HA 严格来说应该分成各个组件的 HA 机制:HDFS 的HA 和 YARN 的 HA。3、Hadoop2.0 之前,在 HDFS 集群中 NameNode 存在单点故障(SPOF)。4、NameNode 主要在以下两个方面影响HDFS集群(1) Na...原创 2020-03-12 11:32:43 · 1006 阅读 · 0 评论 -
Hadoop -- Yarn资源调度器
一、Yarn 介绍Yarn 是 hadoop 的一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。二、Yarn 基本架构YARN 主要由 ResourceManager、NodeManager、ApplicationMaster 和 Container 等组件构成。三、Yarn 工作...原创 2020-03-01 18:24:08 · 227 阅读 · 0 评论 -
MR -- MapReduce开发总结
编写 MR 程序,注意以下几点:1、输入数据接口:InputFormat2、逻辑处理接口:Mapper根据需求,实现其中的三个方法:map()、setup()、cleanup()。3、Partition 分区4、Comparable 排序5、Combiner 合并Combiner合并可以提高程序的执行效率,减少 IO 传输。但是使用时,不能影响业务逻辑。6、Reduce 端分...原创 2020-03-01 12:07:31 · 293 阅读 · 0 评论 -
MR -- join操作
一、Reduce Join1.1 原理1、Map 端的主要工作:为来自不同表或文件的 key/value 对,打标签以区别不同来源的记录。然后用连接字段作为 key,其余部分和新加的标志作为 value,最后进行输出。2、Reduce 端的主要工作:在 Reduce 端以连接字段作为 key 的分组以及完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在 Map 阶段已经打标志)分...原创 2020-03-01 11:50:42 · 490 阅读 · 0 评论 -
MR -- MapReduce详细流程
原创 2020-02-29 21:03:05 · 261 阅读 · 0 评论 -
MR -- ReduceTask工作机制
1、ReduceTask 工作机制(1) Copy 阶段:ReduceTask 从各个 MapTask 上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。(2) Merge 阶段:在远程拷贝数据的同时,ReduceTask 启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。(3) Sort 阶段:按照 MapR...原创 2020-02-29 20:56:48 · 396 阅读 · 0 评论 -
MR -- MapTask工作机制
1、图示2、流程(1) Read 阶段:MapTask 通过用户编写的 RecordReader,从输入 InputSplit 中解析出 key/value。(2) Map阶段:该节点主要是将解析出的 key/value 交给用户编写 map() 函数处理,并产生一系列新的 key/value。(3) Collect 收集阶段:在用户编写 map() 函数中,当数据处理完成后,一般会调用...原创 2020-02-29 20:32:10 · 569 阅读 · 0 评论 -
MR -- OutputFormat数据输出
一、OutputFormat 介绍OutputFormat 是 MapReduce 输出的基类,所有实现 MapReduce 输出都实现了 OutputFormat 接口。下面说一下几种常见的 OutputFormat 实现类。1、TextOutputFormat默认的输出格式为 TextOutputFormat,它把每条记录写为文本行。它的键和值可以是任意类型,因为 TextOutputF...原创 2020-02-28 20:21:28 · 485 阅读 · 0 评论 -
MR -- Combiner合并
一、Combiner 合并介绍1、Combiner 是什么?(1) Combiner 是 MR 程序中 Mapper 和 Reducer 之外的一种组件。(2) Combiner 组件的父类是 Reducer。(3) Combiner 和 Reducer 的区别在于运行的位置A、Combiner 是在每一个 MapTask 所在的节点运行B、Reducer 是接收全局所有 Mapper...原创 2020-02-27 17:43:29 · 447 阅读 · 0 评论 -
MR -- WritableComparable排序
一、排序概述1、排序是 MR 中非常重要的操作之一,MapTask 和 ReduceTask 都会对数据按照 key 进行排序。该操作是默认行为。任何 MR 程序中数据均会被排序,而不看逻辑是否需要。2、MapTask 中,它会将处理的结果暂时放到环形缓冲区中,当环形缓冲区使用率到一定的阈值,再对缓冲区数据进行一次快排,并将这些有序数据溢写到磁盘上,而当数据处理完毕后,它会对磁盘上所有文件进行...原创 2020-02-27 11:47:47 · 977 阅读 · 0 评论 -
MR -- Partition分区
一、Partition 分区介绍1、问题由来要求将统计结果按照条件输出到不同文件中(分区),比如:将统计结果按照手机归属地不同省份输出到不同文件中(分区)。2、默认 Partitioner 分区默认分区是根据 key 的 hashCode 对 ReduceTasks 个数取模得到的。用户没法控制哪个 key 存储到哪个分区。3、自定义 Partitioner 步骤(1) 自定义类继承...原创 2020-02-26 21:18:28 · 1490 阅读 · 0 评论 -
MR -- Shuffle机制
1、流程详解Map 方法之后,Reduce 方法之前的数据处理过程被称为 Shuffle,具体流程为:(1) MapTask 收集 map() 方法输出的 kv 对,放到内存缓冲区中。(2) 从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件。(3) 多个溢出文件会被合并成大的溢出文件。(4) 在溢出过程及合并的过程中,都要调用 Partitioner 进行分区和针对 key 进行排...原创 2020-02-26 19:46:14 · 689 阅读 · 0 评论 -
MR -- FileInputFormat实现类
一、实现类的类型FileInputFormat 常见的接口实现类包括:TextInputFormat、KeyValueTextInputFormat、NLineInputFormat、CombineTextInputFormat 和 自定义 InputFormat 等。二、TextInputFormatTextInputFormat 是默认的 FileInputFormat 实现类。按行读取...原创 2020-02-25 21:11:30 · 675 阅读 · 0 评论 -
MR -- FileInputFormat切片机制
一、切片机制二、FileInputFormat 切片大小参数设置原创 2020-02-25 13:46:25 · 385 阅读 · 0 评论 -
MR -- Job提交流程源码和切片源码详解
一、Job提交流程源码详解1.1 代码流程waitForCompletion()submit();// 1建立连接 connect(); // 1)创建提交Job的代理 new Cluster(getConfiguration()); // (1)判断是本地yarn还是远程 initialize(jobTrackAddr, conf); // 2 提交job...原创 2020-02-25 13:36:25 · 329 阅读 · 0 评论 -
MR中InputFormat数据输入 -- 切片与MapTask并行度决定机制
1、问题引出MapTask 的并行度决定 Map 阶段的任务处理并发度,进而影响到整个 Job 的处理速度。思考:1G 的数据,启动 20 个MapTask,可以提高集群的并发处理能力。那么 1K 的数据,也启动 20 个 MapTask,会提高集群性能吗?MapTask 并行任务是否越多越好呢?哪些因素影响了 MapTask并行度?2、MapTask 并行度决定机制数据块:Block 是...原创 2020-02-25 13:26:54 · 238 阅读 · 0 评论 -
Hadoop序列化
一、序列化概述1.1 什么是序列化 ?1、序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。2、反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。1.2 为什么要序列化?一般而言,"活的"对象只生存在内存里面,一断电就没有了。而且"活的"对象只能由本地的进程使用,不能被发送到网络上得到另外一台计...原创 2020-02-25 09:48:26 · 278 阅读 · 0 评论 -
在idea中编写wordcount程序
一、wordcount介绍1、需求统计给定文本文件中每一个单词出现的总次数,并输出。2、输入数据每个单词之间以"\t"分割3、期望输出数据hadoop 2spark 1sqoop 1hbase 1kafka 1flume 1mapreduce 1二、wordcount 流程分析按照 MapReduce 编程规范,我们需要分别编写 Mapper、Reducer、Driv...原创 2020-02-25 08:32:37 · 4341 阅读 · 2 评论 -
MapReduce概述
一、MapReduce定义1、mapreduce 是一个分布式运算程序的编程框架,是用户开发 “基于 Hadoop 的数据分析应用” 的核心框架。2、mapreduce 核心功能是将 用户编写的业务逻辑代码 和 自带默认组件 整合成一个完整的 分布式运算程序,并发运行在一个 hadoop 集群。二、MapReduce优缺点2.1 优点1、mapreduce 易于编程它简单的实现了一些接...原创 2020-02-22 18:45:40 · 311 阅读 · 0 评论 -
HDFS 2.X新特性
一、distcp命令实现两个Hadoop集群之间的递归数据复制[test@hadoop102 hadoop-2.7.2]$ bin/hadoop distcphdfs://haoop102:9000/hello.txt hdfs://hadoop103:9000/hello.txt二、小文件存档1、小文件存储弊端及解决方法2、案例实操(1) 把 /input1 目录里面的所有文件归...原创 2020-02-04 22:10:11 · 159 阅读 · 0 评论 -
HDFS中web端查看/tmp目录与/user目录时权限不足的问题解决
在查看browse directory时,点击 /tmp 或 /user,无法进入,报错:“Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":test:supergroup:drwx------”。这里以 /tmp 为例,/user 也一样。有 tmp 和 user,但 tmp 的权限是 drwx------,而 ...原创 2020-02-04 21:06:54 · 2579 阅读 · 0 评论 -
HDFS中NameNode以及DataNode的多目录配置
1、多目录配置目的多目录配置是为了增加集群的安全性,可以将第一个磁盘挂载到第一个目录上,第二个磁盘挂载到第二个目录上。这样当其中一块磁盘出现故障时,储存的数据也不会丢失。2、NameNode多目录配置在 hdfs-site.xml 文件中增加如下内容:<property> <name>dfs.namenode.name.dir</name> &...原创 2020-02-04 17:25:40 · 1907 阅读 · 0 评论 -
HDFS中服役与退役数据节点
一、服役新数据节点1、需求 随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。2、环境准备(1) 在 hadoop153 主机上再克隆一台 hadoop154 主机(2) 修改 hadoop153 的ip地址和主机名称(3) 修改...原创 2020-02-04 15:22:54 · 443 阅读 · 0 评论 -
HDFS中DataNode工作机制
1、DataNode工作机制(1) 一个数据块在 DataNode 上以文件形式储存在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度、块数据的校验和以及时间戳。(2) DataNode 启动后向 NameNode 注册,通过后,周期性(1小时)的向 NameNode 上报所有的块信息。(3) 心跳是每3秒一次,心跳返回结果带有 NameNode 给该 DataNode 的...原创 2020-02-04 09:52:38 · 372 阅读 · 0 评论 -
HDFS集群安全模式
1、集群安全模式概述2、基本语法集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。(1) 查看安全模式状态hdfs dfsadmin -safemode get(2) 进入安全模式状态hdfs dfsadmin -safemode enter(3) 离开安全模式hdfs dfsadmin -safemode leave(4) 等待安全模式hdfs...原创 2020-02-03 21:59:25 · 447 阅读 · 0 评论 -
HDFS中namenode故障处理
NameNode故障后,可以采用如下两种方法恢复数据:1、将SecondaryNameNode中数据拷贝到NameNode存储数据的目录(1) kill -9 NameNode进程[test@hadoop151 ~]$ jps3764 DataNode4069 NodeManager3654 NameNode7738 Jps[test@hadoop151 ~]$ kill -9 3...原创 2020-02-03 19:42:20 · 3374 阅读 · 1 评论 -
HDFS中NameNode和SecondaryNameNode工作机制详解
一、为何要引入SecondaryName?思考:NameNode中的元数据是储存在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生...原创 2020-02-03 15:52:24 · 2468 阅读 · 0 评论 -
HDFS读数据流程
一、HDFS读数据流程图示二、HDFS读数据流程1、客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。2、挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。3、DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。4、客户...原创 2020-02-03 11:32:24 · 248 阅读 · 0 评论 -
HDFS机架感知(副本存储节点选择)
1、机架感知官方说明http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication2、机架感知图示如果还有更多的副本就随机放在集群的node里...原创 2020-02-03 09:49:12 · 330 阅读 · 0 评论 -
HDFS网络拓扑-节点距离计算
在HDFS写数据的过程中,NameNode 会选择距离上传数据最近的 DataNode 接收数据。那么这个最近距离是如何计算的呢?节点距离:两个节点到达最近的共同祖先的距离总和例如,假设有数据中心d1机架r1中的节点n1。该节点可以表示为/d1/r1/n1。利用这种标记,这里给出四种距离描述,如下图:...原创 2020-02-03 09:39:05 · 1200 阅读 · 2 评论 -
HDFS写数据流程
一、HDFS中的block、packet、chunk二、写数据流程图示三、写数据流程讲解原创 2020-02-03 09:22:24 · 129 阅读 · 0 评论 -
在IDEA中创建maven项目编写java代码操作HDFS集群
一、安装win10编译过的hadoop1、将编译好的hadoop包放在非中文目录2、配置HADOOP_HOME环境变量3、将hadoop包的bin目录加到PATH环境变量中二、在idea中创建一个maven项目1、创建maven项目2、导入相应的依赖坐标+日志添加在pom.xml文件中添加:<dependencies> <dependency>...原创 2020-02-02 20:37:46 · 3103 阅读 · 1 评论 -
hadoop的三种运行模式区别及配置详解
文章转载自:https://blog.csdn.net/qq_26442553/article/details/78710170转载 2020-02-01 14:32:14 · 530 阅读 · 0 评论 -
hadoop fs、hadoop dfs和hdfs dfs的区别
1、fs、dfs区别?(1) fs是文件系统, dfs是分布式文件系统。(2) fs > dfs。(3) 分布式环境情况下,fs与dfs无区别。(4) 本地环境中,fs就是本地文件,dfs就不能用了。(5) fs涉及到一个通用的文件系统,可以指向任何的文件系统如local,HDFS等。但是dfs仅是针对HDFS的。2、为什么会对同一个功能提供两种命令标记?fs涉及到一个通用的文...原创 2020-02-01 14:26:27 · 7029 阅读 · 0 评论 -
HDFS的Shell操作
1、基本语法bin/hadoop fs 具体命令 OR bin/hdfs dfs 具体命令2、命令大全[test@hadoop151 ~]$ hadoop fsUsage: hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src>...原创 2020-02-01 14:01:19 · 316 阅读 · 0 评论 -
HDFS组成架构
一、HDFS组成介绍1.1 NameNodeNameNode(nn):就是Master,它是一个主管、管理者。1、管理HDFS的名称空间2、配置副本策略3、管理数据块(Block)的映射信息4、处理客户端读写请求1.2 DataNodeDataNode:就是Slave。NameNode下达命令,DataNode执行实际的操作。1、存储实际的数据块2、执行数据块的读写操作1.3...原创 2020-01-31 20:46:27 · 618 阅读 · 0 评论 -
HDFS概述及HDFS优缺点
一、HDFS概述1.1 HDFS产生背景 随着数据量越来越大,在一个操作系统上存储不了所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统的一种1.2 HDFS定义 HDFS(Hadoop Distributed File System),它是一个文件系统,用于储存文件...原创 2020-01-31 19:47:17 · 5381 阅读 · 0 评论 -
Hadoop环境搭建之完全分布式运行模式
一、hadoop完全分布式运行模式介绍Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境,只有分布式多台服务器运行,才满足大数据算力的要求。在所有的主机上安装JDK和Hadoop,配置SSH组成相互连通的网络,集群之间才可以网络通信,实现分布式计算。二、hadoop完全分布式运行环境搭建这里用vmare虚拟三台centos的虚拟机进行完全分布式运行环境的搭建。2.1 在...原创 2020-01-30 21:55:21 · 1738 阅读 · 1 评论