当前位置: 首页 > news >正文

Hadoop HDFS 文件系统的存储哲学

数据可以分为两种:元数据和数据。数据是描述一切的;元数据是关于数据的数据。什么意思呢,比如我有十个文件在十台计算机上,这些数据是关于学生信息的,什么学号啊,姓名之类的。当然每个文件有自己的文件名。数据是让人用的,要想用这些数据,首先就要知道数据在哪里是吧。描述数据在哪里的数据就是元数据,元嘛,就是开始的意思,比如开元寺,那就是那个地方最早的寺庙。一开始呢,你要想用这些数据就必须去到元数据里,找到关于数据的信息。这样,要有台电脑来存放这些元数据。你和这台电脑打交道,他告诉你数据在哪里。为了数据的安全,一个文件可能有几个备份。这样,一个文件在哪里,文件有几个备份都记录在元数据里。当然,一个文件在哪里,有可能变动,所以呢,这个数据是不稳定的。元数据就不持久化地存他了(硬盘里),而是每次启动时,自己汇报给元数据,自然是在内存里了。HDFS呢,就是这样一个文件系统,里面有个NameNode,就是管理元数据的,DataNode就是数据,当然这个NameNode十分重要,就像一个司令部,一旦被炸毁,数据就全丢掉了,所以为了安全呢,有个储备司令部,叫做SecondNameNode。当然,因为数据多了,现在不是十台电脑,怎么办,我又增加了10台,那也没关系,只要你在这个文件系统中,你也必须像司令部汇报,NameNode会感知你,把一些文件交给你,记住这些文件的信息(几个备份,在哪里)。这样就可以任意扩展了。其实,HDFS就是叫Hadoop分布式文件系统,怎么理解呢,以前都是在一个电脑上单打独斗,有道是,好虎架不住一群狼,总有资源(cpu内存和外存)耗尽的那一天。有了HDFS,就把大家的电脑连起来,当做一台电脑那样使用。有点像我党的群众路线,发动群众,从群众中来,到群众中去。人多力量大,众人拾柴火焰高。当然,这些群众不是一盘散沙乌合之众。为什么呢,因为有一个有效的指挥系统NameNode司令部。这就是Hadoop HDFS 文件系统的存储哲学。

转载于:https://www.cnblogs.com/pdcayxs/p/9734065.html

相关文章:

  • 牛客国庆集训派对Day1-New Game!(几何+最短路)
  • 寻找最长回文字符串
  • JavaScript 中 this的指向
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • Java 里如何实现线程间通信
  • Django框架-AJAX
  • P1044 栈 洛谷(数论)(卡特兰数)
  • 矩阵运算
  • MySQL之架构与历史(一)
  • 函数指针
  • Django admin源码剖析
  • 第53节:Java当中的IO流(上)
  • linux下自动获取并安装软件包 apt-get 的命令介绍
  • [CF482B]Interesting Array
  • linux连接oracle数据
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • download使用浅析
  • java第三方包学习之lombok
  • vue.js框架原理浅析
  • 老板让我十分钟上手nx-admin
  • 码农张的Bug人生 - 初来乍到
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 算法系列——算法入门之递归分而治之思想的实现
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • Semaphore
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​TypeScript都不会用,也敢说会前端?
  • #Linux(权限管理)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (ZT)一个美国文科博士的YardLife
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)3D模板阴影原理
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • ./configure,make,make install的作用
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 发展历程
  • .NET6 命令行启动及发布单个Exe文件
  • @SuppressWarnings(unchecked)代码的作用
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [AIGC] MySQL存储引擎详解
  • [Android]使用Git将项目提交到GitHub
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
  • [Firefly-Linux] RK3568修改控制台DEBUG为普通串口UART
  • [Flexbox] Using order to rearrange flexbox children
  • [JavaScript] JavaScript事件注册,事件委托,冒泡,捕获,事件流
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [office] 图文演示excel怎样给单元格添加下拉列表 #知识分享#经验分享
  • [shell,hive] 在shell脚本中将hiveSQL分离出去
  • [Spark、hadoop]Spark Streaming整合kafka实战
  • [SQL]数据库语言学习
  • [svc]caffe安装笔记