网站首页 > 博客文章 正文
Hadoop CDH集群管理概述:
优点:
1、基于稳定版Apache Hadoop,并修复bug
2、文档简单详细
3、支持Yum包、Tar包、PRM包、cloudera manager四种安装方式
Hue入门:
Hue是开源的Apache Hadoop UI系统,通过web界面,管理大数据相关框架。
功能:
1、提供SQL接口,在web界面操作Hive、Impala、MySQL、PostGres、Sqlite、Oracle
2、提供Solr动态查询面板,在web页面动态查询Solr数据,并且提供报表支持。
3、提供spark编辑器
4、提供浏览界面:可以查看YARN日志数据,HDFS数据,Hive表元数据,HBASE表,zookeeper等
5、提供Sqoop2编辑器,
6、提供Hadoop数据加载向导
Hadoop各个压缩算法特点:
多文件,是指能否同时压缩多个文件。
通过LZO压缩后的文件最大,压缩和解压缩速度都最快;bzip2压缩后的文件最小,压缩和解压缩的速度最慢。
Gzip压缩优点:
1、压缩率比较高,也就是压缩后的数据比较小。
2、压缩/解压缩的速度相对比较快,但是比不上LZO。
3、Hadoop本身支持,可以不用安装就可以使用。
4、大部分Linux系统自带gzip命令,使用方便。
Gzip缺点:
1、不支持split,不支持分隔文件
Gzip应用场景:
1、当每个文件压缩后在1个块大小内,128M,可以使用gzip压缩格式。如果超过该大小,则不建议使用。
2、把一段时间内的数据压缩为一个gzip文件,可以提高存储效率。
LZO压缩优点:
1、压缩/解压缩速度最快,压缩率比较高,但不如gzip
2、支持split,所以处理数据效率非常高。是Hadoop中最流行的压缩格式。
3、支持Hadoop本地库。
4、可以在Linux系统中安装lzop命令。
LZO缺点:
1、压缩率比gzip低,意味着占用存储空间大。
2、Hadoop本身不支持,需要安装
3、为了支持split需要建索引,还需要指定inputformat为lzo格式。
LZO应用场景:很大的文本文件,压缩之后还大于200M时可以考虑LZO压缩。单个文件越大,LZO优点越明显。
Snappy压缩优点:
1、高速压缩速度和合理的压缩率
2、支持Hadoop本地库
Snappy缺点:
1、不支持split
2、压缩率比gzip低
3、Hadoop本身不支持,需要安装
4、Linux系统没有对应的命令
Snappy应用场景:当MR作业的map输出的数据比较大时,可以作为map到reduce的中间数据的压缩格式。或者是两个MR任务,它们之间数据传输的压缩格式。
Bzip2压缩优点:
1、支持split。有很高的的压缩率,比其他压缩算法都高。
2、Hadoop本身支持,但是不支持native。
3、在Linux系统下自带bzip2命令
Bzip2缺点:
1、压缩/解压缩速度慢,因为压缩率很高。
2、不支持本地库native
Bzip2应用场景:
1、对速度要求不高,但需要较高的压缩率
2、数据经过处理之后还是比较大,且处理之后使用的情况比较少
HDFS底层架构:
1、基于物理层存储的分布式,也就是说,存储的数据,是在两个节点以上的机器,而不是单台的服务器;而且数据存储是独立的,不会相互影响。
2、基于客户端/服务器模式。通常一个分布式文件系统,提供多个供用户访问的服务器。
3、通常情况下,HDFS会提供备份和容错的功能。默认情况下,HDFS会备份三份数据,可以通过更新配置文件更新备份数。如果备份数据中,有一份丢失,HDFS会通过剩下的备份数据来恢复它。
4、通常情况下,HDFS都是基于操作系统的本地文件系统。比如常见的ext3,ext4,NTFS
分布式文件系统的优点:
1、传统文件系统,容量和吞吐量有限制。分布式文件系统可以动态增加服务器来存储数据;分布式文件系统可以通过多个服务器并行处理数据,增加吞吐量。
2、多用户多应用并行读写。
3、扩充存储空间的成本低。
4、可提供冗余备份。
5、为分布式计算提供基础服务,也就是Hadoop中的MR计算任务。
HDFS基本概念:
1、HDFS是一个分布式文件系统。
2、HDFS是一个Java实现的,分布式的(多台服务器),可横向扩展(可动态增加节点和卸载节点)的文件系统。
3、HDFS是Hadoop的核心组件(核心组件有三个,另外两个是MapReduce,用于计算和分析海量数据;YARN,用于调用集群的资源,管理集群的CPU、内存等),用于存储海量数据。
4、基于*NIX,比如Linux、Unix
5、HDFS具有很高的容错性(集群中的节点如果一台故障,HDFS还是可以正常提供服务,后期也可以动态将宕机节点启动)、提供高吞吐量的数据访问(因为可以并发读写)。
6、HDFS适用于一次写入多次读取的情况,HDFS没有修改数据的概念;不支持并发写情况(是指写同一个文件);小文件不合适,因为存储的每一个文件,都会在NameNode中存储一份元数据,NameNode内存有限制,小文件过多会导致NameNode内存不足,导致集群不可用。
HDFS前提和设计目标:
1、硬件错误是常态。错误检测和快速、自动的恢复是HDFS最核心的架构目标。
2、适用于存储超大文件,可以达到PB、EP级。单个文件一般在百M以上。
3、可处理流数据,HDFS适用于批处理,不适合随机定位访问。
简单一致性模型:
1、HDFS应用程序需要对文件实行一次写、多次读的访问模式。如果想要修改,则需要删除之后重新上传。
2、程序采用“数据就近”原则分配节点执行。因为移动计算比移动数据的代价低,也就是通过程序分析出要访问的数据存储在哪台服务器,然后直接访问最近的服务器,这种效率高。
3、运行在普通廉价的服务器上,可以用普通的PC机用作服务器。即便发生硬件故障,也可以通过容错策略实现高可用。
HDFS局限性:
1、不适合低延迟的数据访问。高吞吐量代价是高延迟。Spark可以在内存中读取数据,可以解决高延迟。HBASE也可以弥补不足。
2、无法高效存储大量小文件。因为受限于NameNode的内存。
3、不支持多用户写入及修改文件。
HDFS基本概念——块:
1、HDFS基本存储单位是块,传统的块是存储在介质中,块也是读写的最小数据单位。
2、Hadoop2.X版本默认一块64M,2.X版本默认128M。块的大小可以在hdfs-site.xml中配置,1.X修改 dfs.block.size,2.X修改 dfs.blocksize,默认单位是比特。每个块有自己的全局ID。
3、HDFS会将一个文件分为一个或多个块来存储。每个块是独立的存储单位,是存储在集群中。
块的好处:
1、一个文件的大小,可以大于网络中任意一个磁盘的容量。可以把大文件分隔成很多块,分开存储。
2、简化了存储子系统的设计,简化了存储管理,消除了对元数据的顾虑。
3、块适用于数据备份,如果一个块故障,可以通过备份的块恢复,提供了容错能力和可用性。
块的冗余备份:
1、每个块在集群中都会存储多分数据,默认三份。
2、简化了存储子系统的设计,简化了存储管理,消除了对元数据的顾虑。
3、块适用于数据备份,提供了容错能力和可用性。
Rack1 和 Rack2 可以理解成两个服务器。
HDFS元数据:
1、文件系统目录树信息,包括文件名、目录名;文件和目录的从属关系;文件和目录的大小,创建时间,最后访问时间;文件和目录的权限。
2、文件和块的对应关系,包括文件由哪些块组成。
NameNode职责详解:
1、管理文件系统的命名空间,类似于D盘,E盘等。
2、记录每个块在DataNode的位置关系,和副本关系。
3、协调客户端对文件的访问,客户端如果要下载数据,首先通过NameNode获得下载数据的地址,然后通过地址下载数据。
4、记录文件的改动,如命名空间内的改动和空间本身属性的改动。
5、NameNode可以使用事务日志记录HDFS元数据的变化,使用映像文件存储文件系统的命名空间,包括文件映射和属性。
6、通过检查点(checkpoint)更新影像文件。
DataNode职责详情:
1、负责所在物理节点的存储管理,主要用来存储数据块。
2、一次写入,多次读取,不支持修改
3、文件由数据块组成,典型块大小为64M和128M
4、数据块会尽量散布在各个节点,增加读取效率
HDFS读文件流程:
首先客户端打开分布式文件系统,通过NameNode获取元数据块,得到块的信息(存储在哪个DataNode中),通过信息读取数据,读取完成后,关闭连接。
通过客户端访问,创建分布式文件系统的连接,通知NameNode需要创建数据,NameNode处理请求,客户端写入数据,写入完成后关闭连接。
HDFS可靠性:
1、冗余副本策略,所有数据块都有备份。DataNode启动时,会遍历本地文件系统,会产出一份HDFS数据块与本地文件的对应关系列表,并汇报给NameNode。
2、机架策略,集群一般放在不同的机架上,机架间的带宽要比机架内的带宽小。默认一个机架存储两份数据,另一个机架存储一份数据,可以防止机架故障时数据丢失,也可以提高带宽的利用率。
心跳机制:
1、NameNode周期性从DataNode接受心跳信号和块报告,用于监控集群,如果出现错误,会自动修复。
2、NameNode根据块报告验证元数据。如果DataNode没有按时发送心跳信号,NameNode会标记为宕机,不再发送I/O请求。
3、如果DataNode宕机,则副本数量下降,并且低于预设的阈值,NameNode会检测出这些数据块,并在合适的时机复制备份进行恢复。
4、重新复制数据块原因很多,包括数据副本损坏,磁盘错误,复制因子增大等。
安全模式:
1、启动NameNode会经过一个安全模式,用来保证数据安全。
2、在安全模式中,只能读取数据,不能写。
3、在安全模式中,NameNode会进行验证,收集DataNode的报告,当数据块达到最小副本数量以上时,会认为是安全的,并退出安全模式,可以进行数据写操作。
4、当检测数据块不足最小副本数时,HDFS会自动复制这个数据块,直到达标。
校验和:
1、HDFS客户端会对HDFS文件内容进行检测
2、在文件常见时,会校验每个文件的校验和(checksum),存储在一个隐藏文件中,最终会存储在命名空间中。可以通过这个校验和,检验数据块是否损坏。
3、如果正在读取的数据块损坏,可以读它的副本。
回收站:
1、删除文件时,先放入回收站trash中。
2、回收站中的数据可以快速恢复。可以设置一个时间阈值,如果回收站存放数据超过时间阈值,则永久删除,并释放占用的数据块。
3、默认情况回收站是关闭的,可以通过修改 core-site.xml 中添加 fs.trash.interval 打开并配置时间阈值,时间单位是分钟。
元数据保护:
1、映像文件和事务日志是NameNode存储的核心数据,可以配置多个副本。
2、副本会降低处理速度,但会增加安全性。
3、Hadoop1.X版本中,NameNode是单节点,如果发生故障需要手工切换。Hadoop2.X版本可以配置NameNode HA解决该问题。
猜你喜欢
- 2024-10-16 10分钟大数据Hadoop基础入门「值得收藏」
- 2024-10-16 0288-如何使用Flume采集Kafka数据写入HBase
- 2024-10-16 0032-如何在CDH启用Kerberos的情况下安装及使用Sentry(二)
- 2024-10-16 0362-如何在Spark Streaming应用中使用Kudu管理Kafka的Offset
- 2024-10-16 使用ClouderaManager的优点、产生背景和应用场景
- 2024-10-16 大数据之Impala入门实战,看这篇就够了
- 2024-10-16 0732-Cloudera Data Center7.0今天正式GA
- 2024-10-16 清华大佬学习经验:Hadoop教程(一) Hadoop入门教程
- 2024-10-16 你了解过Cloudera的整体架构吗?4.89G学习视频带你走进它的世界
- 2024-10-16 大数据Hadoop之——基于Hive的内存型SQL查询引擎Impala
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)