HDFS

1.hdfs整体工作机制:

  1>hdfs:分布式文件系统。

  hdfs:分布式文件系统

  hdfs有着文件系统共同的特征:

  2>有目录结构,顶层目录是:  /

  3>系统中存放的就是文件

  4>系统可以提供对文件的:创建、删除、修改、查看、移动等功能

2.hdfs跟普通的单机文件系统有区别:

  1>单机文件系统中存放的文件,是在一台机器的操作系统中

  2>hdfs的文件系统会横跨N多的机器

  3>单机文件系统中存放的文件,是在一台机器的磁盘上

  4>hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统中(hdfs是一个基于linux本地文件系统之上的文件系统)

3.hdfs的工作机制:

  1>客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的

  2>一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node)

  3>为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)

  总结:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

4.hdfs客户端形式:

  1.网页形式

  2.命令行形式

  3.客户端在哪里运行,没有约束,只要运行客户端的机器能够跟hdfs集群联网

  4.hdfs的客户端会读以下两个参数,来决定切块大小、副本数量:切块大小的参数: dfs.blocksize(默认64M)副本数量的参数: dfs.replication(默认2)

5.hdfs命令行操作

  1.查看目录信息:hadoop -fs ls /hdfs目录

  2.上传文件到hdfs:hadoop -put /本地文件 /aaa  或者 hadoop fs -copyFromLocal /本地文件  /hdfs路径   ##  copyFromLocal等价于 put

  3.从本地移动到hdfs:hadoop -moveFromLocal /本地文件 /aaa

  4.下载文件到本地磁盘:

    hadoop fs -get /hdfs中的路径   /本地磁盘目录

    hadoop fs -copyToLocal /hdfs中的路径 /本地磁盘路径   ## 跟get等价

    hadoop fs -moveToLocal /hdfs路径  /本地路径  ## 从hdfs中移动到本地

  5.创建文件夹:hadoop fs -mkdir -p /aaa/xxx

  6.移动hdfs中的文件(更名): hadoop fs -mv /hdfs的路径  /hdfs的另一个路径

  7.删除hdfs中的文件或文件夹:hadoop fs -rm -r /aaa

  8.修改文件的权限:hadoop fs -chown user:group /aaa   hadoop fs -chmod 700 /aaa

  9.追加内容到已存在的文件:hadoop fs -appendToFile /本地文件   /hdfs中的文件

  10.显示文本文件的内容:hadoop fs -cat /hdfs中的文件  hadoop fs -tail /hdfs中的文件

6.hdfs核心工作机制

  1.NameNode元数据管理:

    1.什么是元数据:hdfs的目录结构以及每一个文件块信息(块的id,副本量,存放位置)

    2.元数据由谁管理:NameNode

    3.NameNode把数据记录在哪里:NameNode吧实时的元数据存储在内存当中;而且还会在磁盘中(dfs.namenode.name.dir)存储内存元数据在某个时间点上的镜像文件;同时把引起元数据变化的操作记录在edits日志上。

  2.checkpoint机制:

    1.secondarynamenode会定期从NameNode上下载fsimage镜像和新生的edits日志,然后加载fsimage到内存,然后按照顺序解析edits文件,对内存中的元数据进行修高整合,整合完成后,将内存元数据序列化成一个新的fsimage,并将这个fsimage上传给NameNode。

  3.secondary namenode启动位置(默认)

      <property>

         <name>dfs.namenode.secondary.http-address</name>

        <value>0.0.0.0:50090</value>

      </property>

  4.保存元数据目录位置:

      <property>

        <name>dfs.namenode.checkpoint.dir</name>

        <value>file://${hadoop.tmp.dir}/dfs/namesecondary</value>

      </property>

HDFS学习记录的更多相关文章

  1. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  2. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  3. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  4. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  5. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  6. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  7. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  8. UWP学习记录8-设计和UI之控件和模式5

    UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...

  9. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

  10. UWP学习记录6-设计和UI之控件和模式3

    UWP学习记录6-设计和UI之控件和模式3 1.按钮 按钮,响应用户输入和引发 Click 事件的控件. 使用<Button>就能创建一个按钮控件了.按钮是 ContentControl, ...

随机推荐

  1. JetCache源码整理

  2. node 内存全局配置(--max-old-space-size)

    安装完了node和angular之后,使用powershell 窗口进行 ng build --prod打包,会提示内存溢出:JavaScript heap out of memory. 项目内打包解 ...

  3. float高度塌陷和BFC

    开启BFC方式: 1.设置浮动float(副作用比较大,不推荐) 2.将元素设置为行内块元素 display:inline-block:(不推荐) 3.将元素的overlfow设置为非visible的 ...

  4. js导出数据为excel表

    1.接口数据后端写, 2.代码如下: var params={ "filters":[ {"propertyCode":"sequenceNo&quo ...

  5. moco的使用方法

    需要模拟第三方接口测试并调用,找了很多mock工具,在git上找到了moco,学习一番,分享一下. 一.下载moco,moco地址 下载后,是一个jar包. 二.配置moco的配置文件 (1)在jar ...

  6. Lombok Requires Annotation Processing

    当你打开一个项目启动的时候报这样的错误 这种错误 打开这个设置

  7. webssh

    目录 使用 jupyter notebook 使用webssh GateOne 使用 jupyter notebook pip install jupyter ipyton # 启动 jupyter ...

  8. 详解 C++ 左值、右值、左值引用以及右值引用

    一.左值和右值 1.左值 [可以取地址的对象就是左值] 左值是一个表示数据的表达式,比如:变量名.解引用的指针变量.一般地,我们可以获取它的地址和对它赋值,但被 const 修饰后的左值,不能给它赋值 ...

  9. Dockerfile CMD命令提示no such file

    过程: 自制一个kafka镜像,启动时CMD命令报ERROR # 安装 kafka ADD kafka_2.12-2.4.1.tgz /home/pmish/software ENV KAFKA_HO ...

  10. 从零搭建hadoop集群之hadoop集群安装

    1.集群规划   HDSF YARN hadoop01 NanemNode(主机点),DataNode NodeManager hadoop02 DataNode, SecondaryNamenode ...