![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hadoop
文章平均质量分 68
大数据
皮哥四月红
这个作者很懒,什么都没留下…
展开
-
Sqoop抽取Postgresql数据到HDFS和Hive时数据量增多
1、现象:postgresql源表数据量:抽取到HDFS上和Hive之后数据量:2、原因:使用sqoop从pg库导出数据至HDFS或Hive时,如果数据中包含Hive指定的列分隔符,如”\001”或”\t”,那么在Hive中就会导致数据错位;如果数据中包含换行符”\n”,那么就会导致原先的一行数据,在Hive中变成了两行或多行数据,导致数据量增多。正常的:3、解决:在sqoop执行import导入命令时添加参数–hive-drop-import-delims,作用是在导入时从字符串字原创 2021-08-27 16:36:50 · 1171 阅读 · 0 评论 -
Name node is in safe mode.
之前在抽取pg库数据时任务失败,报错:com.aliyun.emr.flow.agent.common.exceptions.EmrFlowException:###[E30001,STORAGE]: Failed to access the storage, cause: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /emr-flow/emr-header-1.cluster-23原创 2021-08-27 16:31:33 · 476 阅读 · 0 评论 -
is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used......
0、任务执行报错截图:1、错误分析:显示物理内存和虚拟内存的占用情况Container [pid=24845,containerID=container_1625047493764_0479_01_000001] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 6.6 GB of 4.9 TB virtual memory used. Killing contai原创 2021-08-27 16:25:25 · 2803 阅读 · 0 评论 -
HBase BulkLoad批量写入数据实战
目录一、HBase BulkLoad介绍1、前言2、为什么要用bulkload方式导入?3、bulkload的实现原理二、HBase BulkLoad批量写入数据实战1、开发生成HFile文件的代码2、打成jar包提交到集群中运行3、观察HDFS上输出的结果4、加载HFile文件到hbase表中5、总结一、HBase BulkLoad介绍1、前言在前面的文章中我们介绍了HBASE的存储机制,HBASE存储数据其底层使用的是HDFS来作为存储介质,HBASE原创 2020-08-25 11:28:20 · 1075 阅读 · 0 评论 -
5节点Hadoop-2.6.0-cdh5.14.2 HA集群搭建详细步骤
目录一、集群规划二、五节点Hadoop HA搭建1. 虚拟机环境准备2. 安装ZooKeeper集群3. 五节点Hadoop HA搭建3.1 解压hadoop压缩包3.2 修改hadoop-env.sh3.3 修改core-site.xml3.4 修改hdfs-site.xml3.5 修改mapred-site.xml3.6 修改yarn-site.xml3.7 修改slaves3.8 远程拷贝hadoop文件夹3.9 修改两个RM的yarn-site原创 2020-08-11 17:15:05 · 1045 阅读 · 0 评论 -
Hadoop高可用(HA机制)详解
目录一、ZooKeeper监听器二、HDFS HA原理1、元数据同步2、主备切换在前面的文章Zookeeper(2)基础架构与内部原理解析(数据存储、watch机制、监听器、选举机制)中有详细介绍分布式协调框架Zookeeper的相关组件和原理,本文结合Zookeeper当中的监听器再来进一步介绍HDFS的HA方案。一、ZooKeeper监听器关于ZooKeeper监听器有三个重要的逻辑: 注册:客户端向ZooKeeper集群注册监听器 监听事件:监听器负责监听.原创 2020-08-11 15:16:18 · 3008 阅读 · 0 评论 -
Hadoop中的计数器(累加器)
1、什么是计数器?计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可辅助诊断系统故障。如果需要将日志信息传输到map 或reduce 任务, 更好的方法通常是看能否用一个计数器值来记录某一特定事件的发生。对于大型分布式作业而言,使用计数器更为方便。除了因为获取计数器值比输出日志更方便,还有根据计数器值统计特定事件的发生次数要比分析一堆日志文件容易得多。2、Hadoop内置计数器列表MapReduce任务计数器 org.apache.hadoop.mapreduce原创 2020-08-10 17:32:52 · 1158 阅读 · 0 评论 -
Hadoop中的文件压缩和压缩算法配置详解
在MapReduce的Shuffle阶段,可以看到数据通过大量的拷贝,从map阶段输出的数据,都要通过网络拷贝,发送到reduce阶段,这一过程中,涉及到大量的网络IO,如果数据能够进行压缩,那么数据的发送量就会少得多,那么如何配置hadoop的文件压缩呢,以及hadoop当中的文件压缩支持哪些压缩算法呢?1、hadoop当中支持的压缩算法文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输前面我们的hadoop的版本经过我们重新编译之后,我们可以看到我们的hadoop已经支持所有的压原创 2020-08-10 17:19:43 · 877 阅读 · 0 评论 -
Hadoop中的序列化和反序列化
什么是序列化和反序列化?序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。Hadoop中的序列化和Java中的序列化有什么不同?Java 的序列化(Serializable)是一个重量级序列化框架,一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系…),不便于在网络中高效传输;所以,hadoop 自己开发了一套序列化机制(.原创 2020-08-10 16:59:07 · 1099 阅读 · 0 评论 -
一文搞定MapReduce中的自定义InputFormat、自定义分区、自定义排序、自定义Combine、自定义分组、自定义OutputFormat
目录一、自定义InputFormat二、自定义分区三、自定义排序四、自定义Combine五、自定义分组六、自定义OutputFormat一、自定义InputFormatmapreduce框架当中已经给我们提供了很多的文件输入类,用于处理文件数据的输入,如下图所示:当然,如果内部提供的文件数据类还不够用的话,我们也可以通过自定义InputFormat来实现文件数据的输入。案例实操1、需求现在有大量的小文件,我们通过自定义InputFormat实现将小文件全部原创 2020-08-10 16:01:21 · 587 阅读 · 1 评论 -
关于HDFS一些你可能不知道的功能(多集群之间数据拷贝、快照snapShot、回收站)
目录一、多个集群之间的数据拷贝二、HDFS快照snapShot管理1. 快照使用基本语法2. 快照操作实际案例三、回收站一、多个集群之间的数据拷贝在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷贝到测试集群,那么就需要我们在多个集群之间进行数据的远程拷贝,hadoop自带也有命令可以帮我们实现这个功能: 本地文件拷贝scp cd /kkb/softscp -r jdk-8u141-linux-x64.tar.gz ha原创 2020-08-07 16:34:55 · 605 阅读 · 0 评论 -
MapReduce中Map Task的数量确定及切片机制
目录一、MapTask个数二、如何控制mapTask的个数三、关于分片确定的临界问题四、ReduceTask的数量如何确定?在MapReduce当中,每个mapTask处理一个切片split的数据量,注意切片与block块的概念很像,但是block块是HDFS当中存储数据的单位,切片split是MapReduce当中每个MapTask处理数据量的单位。在介绍map task的数量及切片机制之前先了解这两个概念:block块(数据块,物理划分)block是HDFS中的基本存储单位,h原创 2020-08-07 15:44:04 · 4132 阅读 · 2 评论 -
MapReduce的核心思想与编程模型原理详解(含wordcount单词统计案例实现)
目录一、MapReduce的定义二、MapReduce的核心思想.三、MapReduce编程模型1. Map阶段2. Reduce阶段3. Map&Reduce四、MapReduce编程指导思想(天龙八步)1. Map阶段2个步骤2. Shuffle阶段4个步骤3. Reduce阶段2个步骤五、Hadoop当中常用的数据类型六、MapReduce编程入门之单词统计案例实现第一步:创建maven工程并导入以下jar包第二步:定义mapper类原创 2020-08-07 11:39:05 · 1988 阅读 · 0 评论 -
HDFS小文件问题及解决方案(Hadoop Archive,Sequence File和CombineFileInputFormat)
目录一、前言概述二、Hadoop Archive方案(HAR)第一步:创建归档文件第二步:查看归档文件内容第三步:解压归档文件三、Sequence Files方案四、CombineFileInputFormat方案一、前言概述小文件是指文件size小于HDFS上block大小的文件。这样的文件会给Hadoop的扩展性和性能带来严重问题。首先,在HDFS中,任何block,文件或者目录在内存中均以对象的形式存储,每个对象约占150byte,如果有1000 0000个小文原创 2020-08-06 17:00:44 · 1014 阅读 · 0 评论 -
Datanode工作机制以及数据存储详解
目录1. Datanode工作机制2. 数据完整性3. 掉线时限参数设置4. DataNode的目录结构5. Datanode多目录配置HDFS分布式文件系统也是一个主从架构,主节点是我们的namenode,负责管理整个集群以及维护集群的元数据信息从节点datanode,主要负责文件数据存储1. Datanode工作机制1)一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。原创 2020-08-06 11:59:40 · 3715 阅读 · 0 评论 -
HDFS的优缺点和读、写数据流程详解
目录一、hadoop的运行模式1. 本地运行模式2. 伪分布式运行模式3. 完全分布式运行模式(开发重点)二、hdfs的优缺点1. hdfs的优点2. hdfs的缺点三、hdfs的读写流程1. hdfs的写入流程2. hdfs的读取流程一、hadoop的运行模式1. 本地运行模式 无需任何守护进程,所有的程序都运行在同一个JVM上执行。在独立模式下调试MR程序非常高效方便。所以一般该模式主要是在学习或者开发阶段调试使用 2. 伪分布式运行模式原创 2020-08-06 10:23:28 · 1662 阅读 · 0 评论 -
Hadoop中的NameNode和SecondaryNameNode功能剖析
目录一、namenode与secondaryName解析1、namenode工作机制2、Secondary NameNode工作二、FSImage与edits详解一、NameNode与SecondaryNameNode解析 NameNode主要负责集群当中的元数据信息管理,而且元数据信息需要经常随机访问,因为元数据信息必须高效的检索,那么如何保证namenode快速检索呢??元数据信息保存在哪里能够快速检索呢??如何保证元数据的持久安全呢?? 为了保证元数据信息的快速检索原创 2020-08-05 15:53:08 · 799 阅读 · 0 评论 -
HDFS的功能和架构原理详解
目录一、分布式文件系统的理解二、HDFS的架构详细剖析1. 文件分块存储&3副本2. 抽象成数据块的好处3. HDFS架构4. 扩展三、HDFS的shell命令操作四、HDFS安全模式一、分布式文件系统的理解 最直观的理解便是三个臭皮匠,顶个诸葛亮。 很多的磁盘加一起就可以装下天下所有的avi 类似于你出五毛,我出五毛,我们一起凑一块的效果 如下图:二、HDFS的架构详细剖析1. 文件分块存储&3副本原创 2020-08-05 15:15:06 · 1200 阅读 · 0 评论 -
HDFS的Java API开发详解(文件的创建上传下载删除、IO流操作HDFS、小文件合并)
目录一、准备工作第一步:windows中的hadoop环境配置第二步:创建maven工程并导入jar包二、Java API开发实操一、准备工作 windows操作系统需要配置一下hadoop环境 mac本质上是unix系统,不需要配置 第一步:windows中的hadoop环境配置 windows操作系统需要配置一下hadoop环境 mac本质上是unix系统,不需要配置 1. 解压Hadoop安装包压缩文件到一个没有中文没有空格的目录下,类.原创 2020-08-05 14:41:44 · 2404 阅读 · 0 评论 -
ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException:
1、问题现象在IDEA中编写完相关代码后运行报错:ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.2、原因出现这个问题的原因,并不是程序的错误,而是用到了hadoop相关的服务,而windows本原创 2020-07-31 17:11:16 · 5441 阅读 · 5 评论 -
MapReduce实现将HDFS中的数据解析并写入到HBase表中
目录一、准备工作二、功能实现1、创建Maven工程并导入依赖2、编写自定义Mapper类3、编写自定义Reducer类4、编写自定义Runner类5、运行代码并查看结果在上一篇博客中实现了HBase表之间的数据迁移功能:HBase表之间的数据迁移(使用MapReduce实现)那么,本文继续结合小案例介绍如何使用MapReduce将HDFS中的数据写入到HBase表中。功能实现:一、准备工作1)启动好Zookeeper、Hadoop、HBase服务;[原创 2020-07-23 15:21:00 · 1426 阅读 · 0 评论 -
详解Yarn中三种资源调度器(FIFO Scheduler、Capacity Scheduler、Fair Scheduler)和配置自定义队列实现任务提交不同队列
前言在前面 Yarn的基本架构和作业提交全流程 一文中提到,当ResourceManager收到客户端Client的请求之后会将该作业job添加到(默认的)容量调度器中,然后再由某一个空闲的NodeManager领取该job并具体提供运算资源。那么,Yarn框架为什么要设计把作业添加到调度器中呢?假设你现在所在的公司有一个hadoop的集群。但是A项目组经常做一些定时的BI报表,B项目组则经常使用一些软件做一些临时需求。那么他们肯定会遇到同时提交任务的场景,这个时候到底如何分配资源满足这两个任务呢?是原创 2020-07-16 13:11:09 · 3792 阅读 · 0 评论 -
Yarn的架构组件、运行原理和应用提交过程详解(ResourceManager、NodeManager、ApplicationMaster、Container、JobHistoryServer等)
一、概述:Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而Mapreduce等运算程序则相当于运行于操作系统之上的应用程序。关于Yarn,有几点需要明白的是:1)实际上,Yarn并不清楚用户所提交程序的运行机制是什么;2)Yarn只负责提供运算资源的调度(用户程序向Yarn申请资源,Yarn就负责分配资源);3)Yarn中的主管角色是ResourceManager,而具体提供运算资源的角色是NodeManager;4)Yarn框架与运行的用户程序原创 2020-07-15 15:53:13 · 3413 阅读 · 0 评论 -
【面试重点】HDFS的读写数据流程以及优缺点
一、前言概述HDFS是Hadoop Distributed File System的缩写,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。二、HDFS的使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。三、HDFS的优缺点:优点:1、 高容错性数据自动保存多个副本,通过增加副本的形式来提高容错性;在某一个副本丢失以后,它可以自动回复;2、 适合处理原创 2020-07-14 11:54:21 · 977 阅读 · 0 评论 -
Java实现kafka生产者与消费者并将消费后的消息写入HDFS
一、前期准备工作:虚拟机已安装和基本配置好;Zookeeper已安装好;Kafka已安装好;Hadoop已安装好;启动之后查看进程是否都起来了:二、编写代码:1、创建Maven工程并导入相关依赖: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId>原创 2020-07-09 18:30:16 · 1445 阅读 · 2 评论 -
【面试题】MapReduce和Spark的区别与联系
1)从功能上来说,MapReduce能够完成的各种离线批处理功能,以及常见算法(比如二次排序、TopN等),基于Spark RDD的核心编程都可以实现,而且是更好地、更容易地实现。2)从速度上来说,基于Spark RDD编写的离线批处理程序,运行速度是MapReduce的数倍,速度上有非常明显的优势,毕竟Spark是基于内存进行计算的,当然也有部分计算基于磁盘,比如Shuffle,但是其大量Tr...原创 2020-04-16 00:10:14 · 3796 阅读 · 0 评论 -
MapReduce工作原理流程图文详解(MapTask过程、Shuffle过程、ReduceTask过程)
工作流程一:工作流程二:一个完整的mapreduce程序在分布式运行时有三类实例进程:1)MrAppMaster:负责整个程序的过程调度及状态协调2)MapTask:负责map阶段的整个数据处理流程3)ReduceTask:负责reduce阶段的整个数据处理流程工作全流程详解:上面图一和图二中的流程是整个MapReduce最全工作流程,主要包括MapTask阶段、Shuffle阶...原创 2020-04-06 22:36:26 · 4021 阅读 · 0 评论