ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HDFS的简单学习

2021-06-15 19:35:17  阅读:177  来源: 互联网

标签:HDFS 文件 Hadoop 学习 简单 namenode 数据 节点


上一篇文章将Hadoop环境搭建完毕,下面我们学习一些HDFS的shell操作以及java api操作,同时理解hdfs的工作原理

HDFS   --->  分布式文件系统   简单说就是把很多数据文件分开放在很多的服务器上,采取分开的方式对很多很多的数据进行分析

 

 namenode    元数据   大哥

clone

datanade

 

namenode  元数据   fszmage 镜像(非实时) 备份          edits日志(实时)操作记录      

时间长了会很大      在2里备份前俩     -》合并  成新的fszmage    给第一个,同时擦除第一个edits

查看

 

 

 namenode如何扩充内存?被什么限制?是否可以无限制扩充?

一、 Hadoop 特点

  1、支持超大文件

  2、检测和快速应对硬件故障

  在集群环境中,硬件故障是常见性问题。因为有上千台服务器连在一起,故障率高,因此故障检测和自动恢复hdfs文件系统的一个设计目标。假设某一个datanode节点挂掉之后,因为数据备份,还可以从其他节点里找到。namenode通过心跳机制来检测datanode是否还存在

  3、流式数据访问

  一般都是批量处理,而不是用户交互式处理,应用程序能以流的形式访问数据库。主要的是数据的吞吐量,而不是访问速度。访问速度最终是要受制于网络和磁盘的速度,机器节点再多,也不能突破物理的局限,HDFS不适合于低延迟的数据访问,HDFS的是高吞吐量。

  4、简化的一致性模型

  对于外部使用用户,不需要了解hadoop底层细节,比如文件的切块,文件的存储,节点的管理。

  一个文件存储在HDFS上后,适合一次写入,多次写出的场景once-write-read-many。因为存储在HDFS上的文件都是超大文件,当上传完这个文件到hadoop集群后,会进行文件切块,分发,复制等操作。如果文件被修改,会导致重新出发这个过程,而这个过程耗时是最长的。所以在hadoop里,不允许对上传到HDFS上文件做修改(随机写),在2.0版本时可以在后面追加数据。但不建议。

  5、高容错性

  数据自动保存多个副本,副本丢失后自动恢复。可构建在廉价机上,实现线性(横向)扩展,当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上。

  6、商用硬件

  Hadoop并不需要运行在昂贵且高可靠的硬件上,它是设计运行在商用硬件的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS遇到上述故障时,被设计成能够继续运行且不让用户察觉到明显的中断。

  hadoop优缺点分析

  二、HDFS缺点

  1、不能做到低延迟

  由于hadoop针对高数据吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟数据访问,不适合hadoop,对于低延迟的访问需求,HBase是更好的选择,

  2、不适合大量的小文件存储

  由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量,根据经验,每个文件、目录和数据块的存储信息大约占150字节。因此,如果大量的小文件存储,每个小文件会占一个数据块,会使用大量的内存,有可能超过当前硬件的能力。

  3、不适合多用户写入文件,修改文件

  Hadoop2.0虽然支持文件的追加功能,但是还是不建议对HDFS上的 文件进行修改,因为效率低。

  对于上传到HDFS上的文件,不支持修改文件,HDFS适合一次写入,多次读取的场景。

  HDFS不支持多用户同时执行写操作,即同一时间,只能有一个用户执行写操作。

  三、HDFS优点

  Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

  高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

  高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

  高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

  高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

  低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

  Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

 

 

 

hadoop与传统网盘对比

1.

 

 

记得保存配置

 

标签:HDFS,文件,Hadoop,学习,简单,namenode,数据,节点
来源: https://www.cnblogs.com/longshisan/p/14883048.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有