初识Hadoop之HDFS

原文地址: https://itweknow.cn/detail?id=54 ,欢迎大家访问。

练习本文中提到的命令行接口的前提条件是至少在一台linux机器或者虚拟机上安装了单机版的Hadoop,当然了如果你有一个集群的话更好了。如果你还不知道如何在Linux上安装Hadoop的话,请戳这里。

概念

DFS是分布式文件系统(distributed filesystem)的简称,而HDFS即Hadoop Distributed Filesystem,是Hadoop自带的分布式文件系统。

HDFS的一些特性

  • 存储超大文件
    由于HDFS是分布式的文件系统,所以不受单台机器的存储大小的限制,可以存储超大文件,目前已经达到了PB级了。
  • 流式访问数据
  • 商用硬件
    Hadoop可以运行在廉价的商用硬件,这样带来的问题就是节点的故障率会比较高。所以HDFS被设计成能够无缝式的处理上述故障并且继续运行,不让用户察觉到明显的中断。
  • 不适合低时间延迟的数据访问
    由于Hadoop的流式数据访问,访问数据的会有写延迟,所以不太适合低时间延迟的数据访问,一般情况下这种需求我们会使用关系型数据库来实现。
  • 不适合大量小文件
    不适合的原因是namenode将文件系统的元数据存储在内存中,每存储一个文件都需要在namenode中存储该文件的目录、存储的datanode等数据。所以如果文件的数量达到数十亿的话namenode的内存很可能不够用了。
  • 不支持多用户写入,任意修改文件
    HDFS只支持单个写入者,而且支持在文件的末尾添加内容,不能任意的修改文件。

与HDFS相关的一些名词

  • NameNode
    管理节点,管理系统的命名空间,维护着整个文件系统的结构和目录信息,通常情况下一个Hadoop集群只会有一个工作的NameNode。
  • DataNode
    工作节点,文件系统的工作节点,主要是根据需要进行存储或者检索数据块,并且定期向NameNode报告它们所存储的数据块列表。
  • 数据块
    同我们常使用的磁盘上的文件系统一样,HDFS也有数据块的概念,默认的大小为128M。
  • 块缓存
    一般情况下,我们通过HDFS从DataNode中检索数据时,DataNode都是从磁盘中读取,但是对于访问很频繁的文件,它所对于的数据块可能会被缓存到DataNode的内存中,以加快读取速度,这就是所谓的块缓存。
  • 联邦HDFS
    其实这个就是为了解决Hadoop不适合存储数量庞大的文件的问题,同时由多个NameNode来维护整个文件系统的系统树以及文件和目录,每个NameNode负责管理文件系统命名空间中的一部分。
  • 高可用性
    主-备模式,当主NameNode失效后,备用NameNode会很快生效,并接管工作。

命令行接口

命令行接口是HDFS所有类型的接口中最简单的,也是每个开发者都必须要掌握的。​

  • 创建目录
​hadoop fs -mkdir /test
  • 查看目录
hadoop fs -ls /
  • 上传文件
hadoop fs -put test.txt /test

紧跟-put后面的test.txt是要推送到HDFS中的文件,/test是指定要推送到HDFS上哪个目录下面。

  • 删除文件
hadoop fs -rm /test/test.txt​

其实通过上面例举的几个命令我们可以看出HDFS的文件操作命令几乎和Linux上的命令一致,这样我们使用起来会很容易上手。在下篇文章中,我们将介绍一下HDFS的Java API。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,038评论 2 89
  • 首先,我们在使用前先看看HDFS是什麽?这将有助于我们是以后的运维使用和故障排除思路的获得。 HDFS采用mast...
    W_Bousquet阅读 4,240评论 0 2
  • 纠结着想去参加一个禅修班,周末三天不在家,老公做了决定:不去!陪家人,做黑茶。先最好一件事情。
    赵凌云阅读 97评论 0 0
  • 淌过了几条河 才有了脑海 闪过了几次你 才有了笑脸 我想走进你 拥抱你 感谢你 然后 活成一堆庸俗的笑脸。
    失剑阅读 236评论 0 0
  • 2017.4.14 周五 晴 心情指数:100% To:未来的喵呜 今天数学老师在班上报了数学考试分数并且把卷子发...
    Clara喵阅读 306评论 2 2