Hadoop大数据入门到实战(第三节) - HDFS文件系统上(入门)

本小节我们来学习Hadoop的HDFS系统,我们先来体验一下HDFS然后再来了解他的原理。

HDFS初体验

HDFS(分布式文件管理系统),顾名思义,它就是我们用来管理海量文件的一个系统。现在是一个数据量爆炸的时代,普通的操作系统管辖不了这么多文件,那么就需要分配到更多文件系统的磁盘中,但是这样又不利于管理和维护,所以我们迫切的需要一个系统来管理多台机器上的文件,分布式文件管理系统就应运而生。
分布式文件系统是一种允许文件通过网络在多台主机上分享的文件系统,可以让可让多机器上的多用户分享文件和存储空间。
分布式文件系统有很多,HDFS是最常见也是使用人数最多的系统之一,适用于一次写入多次查询的情况,不支持并发写的情况,小文件不合适放在HDFS系统中。
刚开始学习,你可以简单的将HDFS理解为Windows文件系统。
好了,说了这么多我们开始用一用吧。

首先我们启动HDFS:

start-dfs.sh 

接着我们来查看HDFS的根目录:

hadoop fs -ls /
image.png

现在输入该命令应该是空空如也的,因为我们HDFS系统中还没有任何文件和文件夹,好既然没有那咱们就来创建一个文件夹。

image.png

创建文件夹之后输入之前的命令就可以看到根目录下有一个test文件夹。

接下来我们在本地创建一个文件编写一些内容,然后上传到HDFS系统中。

image.png
image.png

hello.txt 上传到HDFS的 /text 文件夹中。

接下来我们来查看刚刚上传的文件。


image.png

使用-cat命令即可查看HDFS中的文件。

我们也可以通过Hadoop自带的Web页面来查看集群中的文件,http://localhost:9870/ 如果要在windows系统中访问该页面,localhost修改成虚拟机ip。

image.png

下面这个表格是HDFS的一些常用操作,我们不用专门背下来,记住几个常用的,其他的以后用到了查一查就可以了。

选项名称 使用格式 含义
-ls -ls <路径> 查看指定路径的当前目录结构
-lsr -lsr <路径> 递归查看指定路径的目录结构
-du -du <路径> 统计目录下个文件大小
-dus -dus <路径> 汇总统计目录下文件(夹)大小
-count -count [-q] <路径> 统计文件(夹)数量
-mv -mv <源路径> <目的路径> 移动
-cp -cp <源路径> <目的路径> 复制
-rm -rm [-skipTrash] <路径> 删除文件/空白文件夹
-rmr -rmr [-skipTrash] <路径> 递归删除
-put -put <多个 linux 上的文件> <hdfs 路径> 上传文件
-copyFromLocal -copyFromLocal <多个 linux 上的文件><hdfs 路径> 从本地复制
-moveFromLocal -moveFromLocal <多个 linux 上的文件><hdfs 路径> 从本地移动
-getmerge -getmerge <源路径> <linux 路径> 合并到本地
-cat -cat <hdfs 路径> 查看文件内容
-text -text <hdfs 路径> 查看文件内容
-copyToLocal -copyToLocal [-ignoreCrc] [-crc] [hdfs 源路径] [linux 目的路径] 从本地复制
-moveToLocal -moveToLocal [-crc] <hdfs 源路径> <linux目的路径> 从本地移动
-mkdir -mkdir <hdfs 路径> 创建空白文件夹
-setrep -setrep [-R] [-w] <副本数> <路径> 修改副本数量
-touchz -touchz <文件路径> 创建空白文件

HDFS体系结构与基本概念

初步体验了HDFS系统之后,接下来就要学习原理了,一般原理都是比较枯燥的,但却非常重要,是本小节的重点。

HDFS文件系统结构

HDFS以流式数据访问模式来存储超大文件,运用于商用硬件集群上。(超大文件一般指几百G甚至几百TB或PB级大小的文件)。
HDFS的文件系统是一个主从结构,即master/slave结构,只有一个主节点namenode,有多个子节点datanodenamenode负责管理文件系统和命名空间,并且负责客户端(client)对文件系统的访问,datanode负责存储数据。
HDFS中的文件是以数据块(blok)的形式存储在datanode中的。每一个数据块是64M或者128M、256M,文件拆分成若干个block,这些block存放在DataNode节点上。NameNode操作名字空间比如:打开,关闭,重命名文件目录。DataNode负责为文件系统的客户提供读/写操作服务。DataNode同时还为NameNode提供block创建,删除,备份机制,NameNode只负责元数据信息,没有数据流。NameNode维护名字空间,任何对文件系统名字空间的改动都记录在NameNode。系统的文件组织结构和linux非常类似。你可以创建,删除,移动,重命名文件或者目录。

image.png

namenode 和datanode

HDFS集群有两类节点,并以管理者-工作者模式运行,即一个namenode(管理者)和多个datanode(工作者)。namenode管理文件系统的命名空间,它维护着文件系统树及整棵树内所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。namenode也记录着每个文件中各个块(block)所在的数据节点信息,但它并不永久保存块的位置信息,因为这些信息会在系统启动时有数据节点重建。
客户端(client)代表用户通过与namenode和datanode交互来访问整个文件系统,客户端提供一个类似于POSIX(可移植操作系统界面)的文件系统接口,因此用户在编程时无需知道namenode和datanode也可以实现功能。
datanode是文件系统的工作节点,他们根据需要存储并检索数据块(受客户端或namenode调度),并且定期向namenode发送他们所存储的块的列表。
所以没有namenode,文件系统就会无法使用,如果运行namenode服务的机器毁坏,文件系统上所有的文件将会丢失,因为我们不知道如何根据datanode的块来重建文件,因此,对namenode实现容错非常重要,Hadoop为此提供了各种机制。
第一种机制是备份那些组成文件系统元数据持久状态的文件。Hadoop可以通过配置使namenode在多个文件系统上保存元数据的持久状态,这些写操作是实时同步的,是原子操作,一般的配置使,将持久状态写入本地磁盘的同时,写入一个远程挂在的网络文件系统(NFS)。
另一个方法是运行一个辅助namenode,但它不能被用作namenode,这个复制namenode的重要作用是定期通过编辑日志合并命名空间镜像,以防止编辑日志过大,这个辅助namenode一般在另一台单独的物理计算机上运行,因为他需要占用大量CPU时间与namenode相同容量的内存来执行合并操作,他会保存合并后的命名空间镜像的副本,并在namenode发生故障时启用,但是,辅助namenode保存的状态总是滞后于主节点,所以在主节点全部失效时,难免会丢失部分数据。在这种情况下,一般把存储在NFS上的namenode元数据复制到辅助namenode并作为新的主namenode运行。

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,881评论 2 89
  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 7,232评论 0 34
  • 幸运! 昨天460吃跌停晚上出了公告,460是够强,高开卖了一半,四个点又卖了一半。还算可以,这样就不怎么亏损了。...
    巴克萌萌哒阅读 197评论 0 0
  • 又过一山, 山山水水都是情, 每个静物都是多情, 每片湖波都是柔情似水, ...
    一日光阴阅读 192评论 0 0
  • 2017年8月12日 聚焦网初五原创 张婷 郑州 分享第七十一天 星期六阵雨班脉 我不知道自己卡在那里了...
    心愿幸福阅读 167评论 0 0