![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Hadoop
文章平均质量分 66
大数据面壁者
大数据相关知识分享,框架底层原理机制,生产学习中遇到的相关问题分享,共同学习,共同进步。
展开
-
HDFS块丢失集群一直处于安全模式解决办法
HDFS块丢失集群一直处于安全模式解决办法今天在集群运行的时候突然断电了,服务器重启后,发现提交yarn任务一直报hdfs处于安全模式的错,然后查看hdfs状态,果真丢失两个数据块,导致块数量达不到99.9%。解决方法首先退出hdfs namenode safe mode hadoop dfsadmin -safemode leave查看集群块状态 hadoop fsck /将丢失的块全部删除(必须退出安全模式才能执行) hdfs fsck / -delete原创 2021-03-09 22:34:09 · 821 阅读 · 0 评论 -
Hadoop之Lzo压缩配置
Hadoop之Lzo压缩配置一、hadoop-lzo编译hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下。环境准备maven(下载安装,配置环境变量,修改sitting.xml加阿里云镜像)gcc-c++zlib-develautoconfautomakelibtool通过yum安装即可,yum -y install gcc-c++ lzo-devel zlib-d原创 2020-12-10 14:04:21 · 465 阅读 · 0 评论 -
Hadoop集群之吞吐能力测试
Hadoop集群之吞吐能力测试一、测试HDFS写性能测试内容:向HDFS集群写10个128M的文件[hadoop@hadoop102 mapreduce]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB2020-04-16 13:41原创 2020-12-08 19:10:09 · 642 阅读 · 0 评论 -
基于Centos7和Hadoop3.1.3搭建完全分布式集群(2)
基于Centos7和Hadoop3.1.3搭建完全分布式集群(2)目录基于Centos7和Hadoop3.1.3搭建完全分布式集群(2)一、搭建完全分布式集群运行模式二、相关环境配置2.1 编写集群分发脚本xsync2.2 配置SSH无密登录三、集群配置四、群起集群五、集群启动/停止方式总结六、配置历史服务器七、 配置日志的聚集八、集群时间同步一、搭建完全分布式集群运行模式分析:1)准备3台客户机(关闭防火墙、静态ip、主机名称)2)安装JDK3)配置环境变量4)安装Hadoop5)配置环境原创 2020-12-03 23:42:31 · 743 阅读 · 0 评论 -
Hadoop之回收站功能
Hadoop之回收站功能一、概述开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删、备份的作用。二、回收站参数设置及工作机制2.1 开启回收站功能参数说明默认值fs.trash.interval=0,0表示禁用回收站;其他值表示设置文件的存活时间。默认值fs.trash.checkpoint.interval=0,检查回收站的间隔时间。如果该值不为0,则设置该值与fs.trash.interval的参数值相等。要求fs.trash.checkpoint.interva原创 2020-11-25 21:18:55 · 376 阅读 · 0 评论 -
Hadoop HA高可用原理及集群搭建
Hadoop HA高可用原理及集群搭建文章目录Hadoop HA高可用原理及集群搭建一、HA概述二、HDFS-HA工作机制2.1 HDFS-HA工作要点2.2 HDFS-HA自动故障转移工作机制三、 HDFS-HA集群配置3.1 环境准备3.2 规划集群3.3 配置Zookeeper集群3.3.1 集群规划3.3.2 解压安装3.3.3 配置zoo.cfg文件3.3.4 集群操作3.4 配置HDFS-HA集群3.4.1 官方地址3.4.2 在opt目录下创建一个ha文件夹3.4.3 将/opt/modul原创 2020-11-24 20:01:55 · 558 阅读 · 0 评论 -
Hadoop3.x新特性
Hadoop3.x新特性一、多NN的HA架构HDFS NameNode高可用性的初始实现为单个活动NameNode和单个备用NameNode,将edits复制到三个JournalNode。该体系结构能够容忍系统中一个NN或一个JN的故障。但是,某些部署需要更高程度的容错能力。Hadoop3.x允许用户运行多个备用NameNode。例如,通过配置三个NameNode和五个JournalNode,群集能够容忍两个节点而不是一个节点的故障。二、纠删码HDFS中的默认3副本方案在存储空间和其他资原创 2020-11-24 13:54:06 · 286 阅读 · 0 评论 -
数据流的解压缩
数据流的解压缩package com.hadoop.compress;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IOUtils;import org.apache.hadoop.io.compress.*;import org.apache.hadoop.util.ReflectionUtils;import org.juni原创 2020-11-24 10:07:18 · 365 阅读 · 0 评论 -
HDFS小文件优化方法
HDFS小文件优化方法一、HDFS小文件弊端HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。二、HDFS小文件解决方案小文件的优化无非以下几种方式:在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。在MapReduce处理时,可原创 2020-11-23 23:31:49 · 241 阅读 · 0 评论 -
Yarn作业调度器简介
Yarn资源调度器一、概述目前,Hadoop作业调度器主要有三种:FIFO、Capacity Scheduler和Fair Scheduler。Hadoop3.1.3默认的资源调度器是Capacity Scheduler。具体设置详见:yarn-default.xml文件<property> <description>The class to use as the resource scheduler.</description> <na原创 2020-11-22 22:33:47 · 206 阅读 · 0 评论 -
MapReduce程序之Job提交源码
MepReduce程序之Job提交源码1)Job提交流程源码详解waitForCompletion(true)submit();// 1建立连接connect(); // 1.1创建提交Job的代理 new Cluster(getConfiguration()); // 1.2判断是本地yarn还是远程 initialize(jobTrackAddr, conf); // 2 提交jobsubmitter.submitJobInternal(Job.this, clus原创 2020-11-19 09:59:13 · 217 阅读 · 0 评论 -
Partition分区之底层源码解析
shuffle机制之Partition分区一、分区概念分区概念:将数据按照条件处理后,最终输出到多个文件中.二、源码解析2.1 通过设置分区数实现分区效果默认情况下,我们运行WodCount案例可以看到,在输出路径中,所有的数据都存储到一个文件中(part-r-00000)那么多个分区对应的就是多个不同的文件,比如part-r-00001、part-r-00002…思考1:为什么设置reduce的个数,就可以实现分区的效果?首先默认情况下,通过源码MapTaskrun()方法找到r原创 2020-11-19 20:00:15 · 347 阅读 · 0 评论 -
MR之shuffle机制总结
MR之shuffle机制~分区一、shuffle阶段划分Map方法之后,Reduce方法之前的处理过程就是shuffle阶段.(sort-copy-sort)二、shuffle阶段流程分析相关基础:原创 2020-11-19 19:36:19 · 1959 阅读 · 0 评论 -
MapReduce工作流程
MapReduce工作流程上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下:(1)MapTask收集我们的map()方法输出的kv对,放到内存缓冲区中(2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件(3)多个溢出文件会被合并成大的溢出文件(4)在溢出过程及合并的过程中,都要调用Partitioner进行分区和针对key进行排序(5)ReduceTask根据自己的分区号,去各个MapTask机器上原创 2020-11-19 17:05:38 · 282 阅读 · 0 评论 -
MR切片机制及底层源码追踪
MR切片机制总结一、概述MR程序在运行的时候需要将文件切分为多个分发给不同MapTask进行处理,那么问题来了,MR底层是如何对文件进行切分的呢?二、InputFormat切片机制Hadoop框架内部定义了一个读取数据的基类流~InputFormat(抽象类),其内部定义了2个抽象方法快捷键Ctrl + N 搜索InputFormat类,查看该类中方法public abstract class InputFormat<K, V> { public abstract Li原创 2020-11-19 16:32:02 · 1067 阅读 · 2 评论 -
TextInputFormat切片机制
TextInputFormat切片机制一、TextInputFormatTextInputFormat是默认的FileInputFormat实现类。按行读取每条记录。键是存储该行在整个文件中的起始字节偏移量, LongWritable类型。值是这行的内容,不包括任何行终止符(换行符和回车符),Text类型。以下是一个示例,比如,一个分片包含了如下4条文本记录。Rich learning formIntelligent learning engineLearning more conve原创 2020-11-19 14:34:28 · 948 阅读 · 0 评论 -
CombineTextInputFormat切片机制
CombineTextInputFormat切片机制一、概述框架默认的TextInputFormat切片机制是对任务按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个MapTask,这样如果有大量小文件,就会产生大量的MapTask,处理效率极其低下。TextInputFormat切片机制:https://blog.csdn.net/weixin_42796403/article/details/109804581二、应用场景(处理小文件)CombineTextInputFor原创 2020-11-19 14:16:40 · 2053 阅读 · 1 评论 -
FileInputFormat切片源码解析
FileInputFormat切片源码解析一、FileInputFormat切片机制1.简单按照文件的内容长度进行切片2.切片大小,默认等于Block大小3.切片时不考虑数据集体性,而是针对每一个文件单独切片二、切片过程三、FileInputFormat切片大小配置参数四、切片源码//1、getSplits()方法源码解析:long minSize = Math.max(getFormatMinSplitSize(), getMinSplitSize(job)); //切片最原创 2020-11-19 11:22:58 · 627 阅读 · 0 评论 -
HDFS物理块存储大小
HDFS物理块存储大小一、HDFS数据块数据块:Block是HDFS物理上把数据分成一块一块。数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。hadoop数据切片大小默认与hdfs块大小相同为128M,避免MR程序读取数据时,出现跨节点读取。关于如何确定的128M请详见上一篇文章:https://blog.csdn.net/weixin_42796403/article/details/109753044二、实际存储HDFS对文件存储时时按照128M切原创 2020-11-18 13:03:53 · 2491 阅读 · 0 评论 -
Hadoop概述总结
Hadoop概述总结1.Hadoop做什么–apache 分布式系统基础架构–海量数据存储–数据分析计算2.大数据特点–海量、高速、多样化(结构,非结构化数据)、高价值低密度3.Hadoop–4高–高可靠性:hadoop底层维护了多个数据副本(每台机器中只维护一个副本),保证数据存储或计算时即使出现故障,也不会造成数据的丢失–高扩展性:hadoop集群之间分配任务数据,可方便的扩展数以千计的节点–高效性:MapReduce思想下,hadoop是并行工作的,以加快任务处理速度原创 2020-11-17 23:49:41 · 261 阅读 · 1 评论 -
Hadoop切片与MapTask并行度决定机制
Hadoop切片与MapTask并行度决定机制一、MapTask并行度决定机制数据块:Block是HDFS物理上把数据分成一块一块。数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。hadoop数据切片大小默认与hdfs块大小相同为128M二、数据切片与MapTask并行度决定机制...原创 2020-11-17 20:46:39 · 276 阅读 · 0 评论 -
Hadoop序列化
Hadoop序列化一、序列化概述1.什么是序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到的字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。2.为什么要序列化一般来说,“活的”对象只生存在内存中,关机断电就没有了。而且“活的”对象只能由本地进程使用,不能被发送到网络上的另外一台计算机。然而序列化可以存储“活的“对象,可以将“活的”对象发送到远程计算机。3.为什么不用Java的序列化原创 2020-11-17 20:40:05 · 178 阅读 · 0 评论 -
手写MR程序之wordcount案例
手写MR程序之wordcount案例(三种提交方式)一、WordCount案例实操1)MR原理解析从不同角度理解MR程序的运行: 1.流的角度: Input --->InputFormat ----> Mapper---> Shuffle ---->Reducer ---> OutputFormat--->Output 2.MR阶段划分: Map ---> Shuffle ---> Reduce 3.底层代码: MapTask:原创 2020-11-17 20:06:01 · 1834 阅读 · 1 评论 -
基于Centos7和Hadoop3.1.3搭建完全分布式集群(1)
基于Centos7和Hadoop3.1.3搭建完全分布式集群一、虚拟机准备原创 2020-11-15 21:56:56 · 574 阅读 · 0 评论 -
HDFS读写数据流程
HDFS读写数据流程一、HDFS写数据流程(1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。(2)NameNode返回是否可以上传。(3)客户端请求第一个 Block上传到哪几个DataNode服务器上。(4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。(5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,原创 2020-11-15 19:59:33 · 260 阅读 · 0 评论 -
Hadoop2.x与Hadoop3.x副本选择机制
Hadoop2.x与Hadoop3.x副本节点选择机制Hadoop3的第一个稳定版已经于2017年12月发布,生产环境中已逐步取代Hadoop2,本篇文章主要介绍Hadoop3在副本节点选择机制上的改进。一、Hadoop3.x的副本节点选择机制第一个副本在Client所处的节点上。如果客户端在集群外,随机选一个。第二个副本在另一个机架的随机一个节点。第三个副本在第二个副本所在机架的随机节点。二、Hadoop2.x的副本节点选择机制第一个副本在Client所处的节点上。如果客户端在集群原创 2021-01-06 08:49:53 · 1103 阅读 · 1 评论