Hadoop
mischen520
JAVA高级架构师
展开
-
为什么需要HDFS?
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之原创 2021-07-25 16:28:39 · 1168 阅读 · 0 评论 -
Spark常用端口号
1)4040 spark-shell任务端口2)7077 内部通讯端口。 类比Hadoop的8020/90003)8080 查看任务执行情况端口。 类比Hadoop的80884)18080 历史服务器。类比Hadoop的19888注意:由于Spark只负责计算,所有并没有Hadoop中存储数据的端口50070...原创 2021-07-07 07:45:15 · 303 阅读 · 0 评论 -
hadoop中的数据倾斜表现?
有一个多几个Reduce卡住,卡在99.99%,一直不能结束。 各种container报错OOM 异常的Reducer读写的数据量极大,至少远远超过其它正常的Reducer 伴随着数据倾斜,会出现任务被kill等各种诡异的表现。原创 2021-07-03 14:14:53 · 96 阅读 · 0 评论 -
NameNode内存以及心跳并发配置
1)Hadoop2.x系列,配置NameNode默认2000m2)Hadoop3.x系列,配置NameNode内存是动态分配的NameNode内存最小值1G,每增加100万个block,增加1G内存原创 2021-06-18 00:45:58 · 315 阅读 · 0 评论 -
HDFS小文件处理解决方案
1)会有什么影响(1)存储层面:1个文件块,占用namenode多大内存150字节1亿个小文件*150字节1个文件块 * 150字节128G能存储多少文件块? 128 * 1024*1024*1024byte/150字节 = 9亿文件块(2)计算层面:每个小文件都会起到一个MapTask,占用了大量计算资源2)怎么解决(1)采用har归档方式,将小文件归档(2)采用CombineTextInputFormat(3)有小文件场景开启JVM重用;如果没有小文件,不..原创 2021-06-18 00:40:11 · 283 阅读 · 0 评论 -
xsync集群分发失效的解决办法
首先,需要在你的集群机器上面安装xsync,安装命令为:yum install rsync -y然后,开始在你的目录下面创建xsync,比如我的:原创 2021-06-05 13:23:26 · 2488 阅读 · 0 评论 -
HDFS组成架构以及模块简介
原创 2021-06-05 12:55:03 · 237 阅读 · 0 评论 -
Hadoop配置历史服务器
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:1)配置mapred-site.xml[mischen@hadoop102 hadoop]$ vimmapred-site.xml在该文件里面增加如下配置。<!-- 历史服务器端地址 --><property><name>mapreduce.jobhistory.address</name><value>hadoop102:10020...原创 2021-06-05 12:42:14 · 384 阅读 · 0 评论 -
xsync集群分发脚本
编写xsync集群分发脚本之前先要在原创 2021-06-05 10:35:03 · 3518 阅读 · 3 评论 -
Hadoop生产调优手册(根据企业实际开发需求做详细说明)
我们举一个简单的需求例子来说明如何进行Hadoop生产调优,需求(1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。(2)需求分析:1G/ 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster平均每个节点运行10个/ 3台 ≈3个任务(4 3 3)HDFS参数调优(1)修改:hadoop-env.shexport HDFS_NAMENODE_OPTS="-Dhadoop.security.l...原创 2021-05-26 20:26:30 · 228 阅读 · 0 评论 -
如何配置HDFS纠删码策略?
纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。默认只开启对RS-6-3-1024k策略的支持,如要使用别的策略需要提前启用。1)需求:将/input目录设置为RS-3-2-1024k策略2)具体步骤(1)开启对RS-3-2-1024k策略的支持[mischen@hadoop102 hadoop-3.1.3]$ hdfs ec -enablePolicy -policy RS-3-2-1024kErasure coding policy RS-3-2..原创 2021-05-26 19:38:34 · 872 阅读 · 0 评论 -
HDFS纠删码原理以及为什么要引入纠删码?
近些年,随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。然而,随着需要存储的数据被越来越快的产生,越来越高的HDFS存储利用率要求被提出。而对于一个分布式文件系统来说,可靠性必不可少。因此,在HDFS中每一份数据都有两个副本,这也使得存储利用率仅为1/3,每TB数据都需要占用3TB的存储空间。因此,在保证可靠性的前提下如何提高存储利用率已成为当前HDFS应用的主要问题之一。纠删码技术起源于通信传输领域,后被逐渐运用到存储系统中。它对数据进行分块,然后计算出一些冗余的校验块。原创 2021-05-26 19:28:15 · 1221 阅读 · 0 评论 -
HDFS配置服务器间数据均衡
1)企业经验:在企业开发中,如果经常在hadoop102和hadoop104上提交任务,且副本数为2,由于数据本地性原则,就会导致hadoop102和hadoop104数据过多,hadoop103存储的数据量小。另一种情况,就是新服役的服务器数据量比较少,需要执行集群均衡命令。2)开启数据均衡命令:[mischen@hadoop105 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10对于参数10,代表的是集群中各个节点的磁盘.原创 2021-05-26 18:37:08 · 346 阅读 · 0 评论 -
HDFS添加白名单详细操作步骤
白名单:表示在白名单的主机IP地址可以,用来存储数据。企业中:配置白名单,可以尽量防止黑客恶意访问攻击。配置白名单步骤如下:1)在NameNode节点的/opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建whitelist 和blacklist文件(1)创建白名单vimwhitelist在whitelist中添加如下主机名称,假如集群正常工作的节点为102 103hadoop102hadoop103(2)创建黑名单touch..原创 2021-05-26 08:31:31 · 741 阅读 · 1 评论 -
Reduce Join案例实操
Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并就ok了。代码实现(1)创建商品和订单合并后的TableBean类package com.mischen.mapreduce.wordco原创 2021-05-22 09:42:29 · 222 阅读 · 0 评论 -
NameNode心跳并发配置
1)hdfs-site.xmlThe number of Namenode RPC server threads that listen to requests from clients. If dfs.namenode.servicerpc-address is not configured then Namenode RPC server threads listen to requests from all nodes.NameNode有一个工作线程池,用来处理不同DataNode的并发心..原创 2021-05-09 10:26:25 · 626 阅读 · 0 评论 -
NameNode内存生产配置探究
1)NameNode内存计算每个文件块大概占用150byte,一台服务器128G内存为例,能存储多少文件块呢?128 * 1024 * 1024 * 1024 / 150Byte ≈9.1亿G MB KB Byte2)Hadoop2.x系列,配置NameNode内存NameNode内存默认2000m,如果服务器内存4G,NameNode内存可以配置3g。在hadoop-env.sh文件中配置如下。HADOOP_NAMENODE_OPTS=-Xmx3072m3)Hadoo...原创 2021-05-09 10:01:08 · 1384 阅读 · 0 评论 -
什么是公平调度器(Fair Scheduler)?
Fair Schedulere是Facebook开发的多用户调度器。公平调度器队列资源分配方式:公平调度器资源分配算法:原创 2021-05-09 09:03:13 · 3223 阅读 · 0 评论 -
什么是容量调度器(Capacity Scheduler)?
Capacity Scheduler是Yahoo开发的多用户调度器。原创 2021-05-09 08:44:04 · 1194 阅读 · 0 评论 -
yarn作业提交详细过程
(1)作业提交第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。第2步:Client向RM申请一个作业id。第3步:RM给Client返回该job资源的提交路径和作业id。第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。第5步:Client提交完资源后,向RM申请运行MrAppMaster。(2)作业初始化第6步:当RM收到Client的请求后,将该job添加到容量调度器中。第7步:某一个空原创 2021-05-09 05:53:01 · 631 阅读 · 0 评论 -
Yarn的工作机制
(1)MR程序提交到客户端所在的节点。(2)YarnRunner向ResourceManager申请一个Application。(3)RM将该应用程序的资源路径返回给YarnRunner。(4)该程序将运行所需资源提交到HDFS上。(5)程序资源提交完毕后,申请运行mrAppMaster。(6)RM将用户的请求初始化成一个Task。(7)其中一个NodeManager领取到Task任务。(8)该NodeManager创建容器Container,并产生MRAppmaster。..原创 2021-05-09 05:42:28 · 147 阅读 · 0 评论 -
什么是Yarn资源调度器?
思考:1)如何管理集群资源?2)如何给任务合理分配资源?Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。YARN的基础架构如下:...原创 2021-05-09 05:34:03 · 199 阅读 · 0 评论 -
什么是Hadoop序列化
常用数据序列化类型 Java类型 Hadoop Writable类型 Boolean BooleanWritable Byte ByteWritable Int IntWritable Float FloatWritable Long LongWritable原创 2021-05-05 23:09:23 · 289 阅读 · 0 评论 -
Hadoop示例WordCount代码编写
1)需求在给定的文本文件中统计输出每一个单词出现的总次数(1)输入数据mischen mischenss sscls clsjiaobanzhangxuehadoopjiao 宋运辉 蒋介石宋运辉(2)期望输出数据banzhang 1cls 2hadoop 1jiao 2mischen 2ss 2xue 1宋运辉 2蒋介石 12)需求分析按照MapReduce编程规范,分别编写Mapper,R...原创 2021-05-05 23:04:24 · 686 阅读 · 1 评论 -
Hadoop集群启动常用脚本
启动hadoop命令:在Hadoop102 上执行 /opt/module/hadoop-3.1.3/sbin/start-dfs.sh (启动 hdfs)在Hadoop103 上执行 /opt/module/hadoop-3.1.3/sbin/start-yarn.sh (启动 yarn)在Hadoop102 上执行 /opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver (启动 historyserver)...原创 2021-05-05 11:15:48 · 663 阅读 · 0 评论 -
Hadoop集群配置详细步骤
一般来说,hadoop集群环境都是比较耗内存的,所以即使在虚拟机上面,配置的每台机器的内存至少不能小于50G,不然后期测试会去进行一个扩容,所以就要求自己的电脑配置相对于比较高,这样才能完成本地的一些大数据的测试。因为hadoop都是比较耗内存的,所以需要注意以下2点:1.NameNode和SecondaryNameNode不要安装在同一台服务器2.ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。我的虚拟机的配置是原创 2021-05-05 11:12:09 · 865 阅读 · 0 评论 -
MapReduce编程规范
用户编写的程序分成三个部分:Mapper、Reducer和Driver。原创 2021-05-04 09:56:42 · 140 阅读 · 0 评论 -
MapReduce核心思想
(1)分布式的运算程序往往需要分成至少2个阶段。(2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。(3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。(4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。...原创 2021-05-04 09:39:26 · 91 阅读 · 0 评论 -
MapReduce的优缺点总结
1.1 MapReduce定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。1.2MapReduce优缺点1.2.1 优点1)MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写一个简单的串.原创 2021-05-04 09:17:26 · 9484 阅读 · 0 评论 -
DataNode节点如何保证数据完整性
思考:如果电脑磁盘里面存储的数据是控制高铁信号灯的红灯信号(1)和绿灯信号(0),但是存储该数据的磁盘坏了,一直显示是绿灯,是否很危险?同理DataNode节点上的数据损坏了,却没有发现,是否也很危险,那么如何解决呢?如下是DataNode节点保证数据完整性的方法。(1)当DataNode读取Block的时候,它会计算CheckSum。(2)如果计算后的CheckSum,与Block创建时值不一样,说明Block已经损坏。(3)Client读取其他DataNode上的Block。(4)常原创 2021-05-04 08:59:04 · 397 阅读 · 0 评论 -
DataNode工作机制
(1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。(2)DataNode启动后向NameNode注册,通过后,周期性(6小时)的向NameNode上报所有的块信息。DN向NN汇报当前解读信息的时间间隔,默认6小时;<property> <name>dfs.blockreport.intervalMsec</name> <value>...原创 2021-05-04 00:04:22 · 258 阅读 · 0 评论 -
NameNode的工作机制
1)第一阶段:NameNode启动 (1)第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。(2)客户端对元数据进行增删改的请求。(3)NameNode记录操作日志,更新滚动日志。(4)NameNode在内存中对元数据进行增删改。2)第二阶段:Secondary NameNode工作(1)Secondary NameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检...原创 2021-05-03 23:32:44 · 307 阅读 · 0 评论 -
一张图了解HDFS读数据流程
(1)客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。(2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。(3)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。(4)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。...原创 2021-05-03 23:00:59 · 147 阅读 · 0 评论 -
一张图了解HDFS写数据流程
(1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。(2)NameNode返回是否可以上传。(3)客户端请求第一个 Block上传到哪几个DataNode服务器上。(4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。(5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建..原创 2021-05-03 22:43:59 · 190 阅读 · 0 评论 -
HDFS文件上传参数优先级配置
参数优先级排序:(1)客户端代码中设置的值>(2)ClassPath下的用户自定义配置文件>(3)然后是服务器的自定义配置(xxx-site.xml)>(4)服务器的默认配置(xxx-default.xml)原创 2021-05-03 22:19:21 · 152 阅读 · 0 评论 -
为什么HDFS文件块大小不能设置过大,也不能设置过小呢
原创 2021-05-03 21:10:06 · 788 阅读 · 0 评论 -
一张图了解HDFS的架构组成
原创 2021-05-03 16:49:43 · 283 阅读 · 0 评论 -
HDFS的优缺点分析
HDFS的优点:HDFS的缺点:原创 2021-05-03 16:37:58 · 141 阅读 · 0 评论 -
Hadoop本地运行模式
1.在hadoop-3.1.3文件下面创建一个wcinput文件夹2.在wcinput文件下创建一个word.txt文件3.编辑word.txt文件,并在文件中输出以下内容:4.回到Hadoop目录/opt/module/hadoop-3.1.35.执行程序命令为:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput6.查看结果原创 2021-05-01 23:29:40 · 181 阅读 · 0 评论 -
Hadoop目录结构解析
(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)(4)sbin目录:存放启动或停止Hadoop相关服务的脚本(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例...原创 2021-05-01 23:09:39 · 800 阅读 · 0 评论