一、概述

1、背景、定义、使用场景(一次写入、不支持修改)

2、优(容错)缺点(延迟、不支持小文件、不支持修改)

3、组成架构

NameNode:Master,管理命名空间、配置策略

DataNode:slave,执行数据读写操作

Client:使用命令访问和交互

SecondNameNode:辅助分担namenode的工作量、恢复namenode

4、HDFS文件块大小

分块存储,默认128M(寻址时间为传输时间的1%),块大小取决于磁盘传输速率

二、HDFS的shell操作

1、基本语法:bin/hadoop fs 或 bin/hadoop dfs

2、常见操作:

启动集群(sbin/start-dfs  /  yarn.sh)

上传文件:hadoop fs  -moveFromLocal  ./kongming.txt  /sanguo/shuguo【剪切、复制】

追加到文件:hadoop fs -appendToFile liubei.txt /sanguo/shuguo/kongming.txt

下载:合并下载hadoop fs -getmerge /user/atguigu/test/* ./zaiyiqi.txt

3、hdfs直接操作

hadoop fs -mkdir

-chgrp 、-chmod、-chown、-tail显示末尾、-du统计信息、-setrep设置副本数量

三、HDFS客户端操作

1、客户端创建目录:fs.mkdirs(new Path("/1108/daxian/banzhang"));

2、API操作

文件上传:设置路径参数的优先级

文件下载:fs.copyToLocalFile

文件夹删除:fs.delete

文件名更改:fs.rename

获取文件详情:fs.listFiles

判断文件/文件夹:fs.listStatus

四、HDFS的数据流

1、写数据

向NameNode请求上传

通过packet逐级应答客户端

依次上传每个block的数据

节点距离:两个节点到达最近的共同祖先的距离总和。

2、读数据

向NameNode请求下载

查询元数据,获得对应的DataNode

packet方式传输数据给客户端

五、NameNode和Second NameNode

1、1 NN和2NN的工作机制

Fsimage和Edits文件存储namenode的元数据

NameNode节点断电,就会产生数据丢失

添加元数据时,修改内存中的元数据并追加到Edits【只追加,效率高】

二者合并,合成元数据【使用2NN完成二者合并】

2、oiv和oev命令可以查看Fsimage和Edits文件

3、2NN的CheckPoint时间设置

配置:默认1小时

或一分钟检查一次,操作次数达到一万次时执行一次

4、NameNode故障处理

2NN数据拷贝(手动)

使用-importCheckpoint选项启动NameNode守护进程,自动实现2NN的数据拷贝

5、安全模式

开启后只读,不能进行写操作

使用命令执行:查看、进入、离开、等待

六、DataNode

1、工作机制

周期性上报块信息到NN,

3秒一次心跳,10分钟未收到NN心跳表示节点不可用

2、数据完整性

周期验证CheckSum【数据一起发送的校验位】

3、掉线时限参数设置

hdfs-site.xml 配置文件中的heartbeat.recheck.interval、dfs.heartbeat.interval

4、服役新数据节点

克隆新主机,直接启动DataNode,即可关联集群

同时可以执行./start-balancer.sh实现数据均衡

5、退役旧数据节点

添加白名单的主机允许访问:vi dfs.hosts

需要配置hdfs-site.xml中的dfs.host属性

配置文件分发,刷新NN和ResourceManager节点

黑名单退役:

退役节点添加到:dfs.hosts.exclude中

配置文件分发:xsync hdfs-site.xml

刷新NN:hdfs dfsadmin -refreshNodes

yarn rmadmin -refreshNodes更新ResourceManager节点

6、Datanode多目录配置

每个目录存储的数据不一样

hdfs dfsadmin -refreshNodes

【Hadoop学习】中:HDFS、shell操作、客户端API操作、数据流、1NN、2NN原理、DataNode配置的更多相关文章

  1. HDFS shell命令行常见操作

    hadoop学习及实践笔记—— HDFS shell命令行常见操作 附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop ...

  2. 【Hadoop学习】HDFS中的集中化缓存管理

    Hadoop版本:2.6.0 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4146398.html 概述 ...

  3. hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作

    附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSy ...

  4. hadoop学习(五)----HDFS的java操作

    前面我们基本学习了HDFS的原理,hadoop环境的搭建,下面开始正式的实践,语言以java为主.这一节来看一下HDFS的java操作. 1 环境准备 上一篇说了windows下搭建hadoop环境, ...

  5. hadoop笔记之hdfs shell操作

    HDFS命令行操作 HDFS命令行操作 (以下是hadoop 1.x 版本的命令使用) 装好hadoop之前首先要进行一个格式化 hadoop namenode -format 运行之后,可以将文件夹 ...

  6. HDFS基础和java api操作

    1. 概括 适合一次写入多次查询情况,不支持并发写情况 通过hadoop shell 上传的文件存放在DataNode的block中,通过linux shell只能看见block,看不见文件(HDFS ...

  7. Hadoop学习笔记—HDFS

    目录 搭建安装 三个核心组件 安装 配置环境变量 配置各上述三组件守护进程的相关属性 启停 监控和性能 Hadoop Rack Awareness yarn的NodeManagers监控 命令 hdf ...

  8. HDFS 05 - HDFS 常用的 Java API 操作

    目录 0 - 配置 Hadoop 环境(Windows系统) 1 - 导入 Maven 依赖 2 - 常用类介绍 3 - 常见 API 操作 3.1 获取文件系统(重要) 3.2 创建目录.写入文件 ...

  9. 【Hadoop学习】HDFS 短路本地读

    Hadoop版本:2.6.0 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4146296.html 背景 ...

  10. Hadoop学习笔记---HDFS

    Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.HDFS能提供高吞吐 ...

随机推荐

  1. firewalld教程

    修改配置 cat firewalld.conf | grep -Ev "^#|^$" DefaultZone=trusted #主要是这个位置,必须修改trusted的 Minim ...

  2. 《HelloGitHub》第 78 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...

  3. PAT (Basic Level) Practice 1003 我要通过!分数 20

    "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正确&q ...

  4. [题解] Atcoder Regular Contest ARC 147 A B C D E 题解

    点我看题 A - Max Mod Min 非常诈骗.一开始以为要观察什么神奇的性质,后来发现直接模拟就行了.可以证明总操作次数是\(O(nlog a_i)\)的.具体就是,每次操作都会有一个数a被b取 ...

  5. POJ1655 Balancing Act (树的重心)

    求树的重心的模板题,size[u]维护以u为根的子树大小,f[u]表示去掉u后的最大子树. 1 #include<cstdio> 2 #include<iostream> 3 ...

  6. numba jit加速python程序

    numba numba加速循环.numpy的一些运算,大概是将python和numpy的一些代码转化为机器代码,速度飞快! 加速耗时很长的循环时: from numba import jit # 在函 ...

  7. Mysql主从配置步骤与各种错误

    测试环境: 2台腾讯云服务器.CentOS 7.2 64位,1G,lnmp. PHP:5.6:Mysql:5.5 两台干净的服务器 下面开始配置主服务器(master) 1.修改配置:  log-bi ...

  8. 齐博x1背景图如何设置标签

    背景图非常特殊,由于不能点击,所以他不能直接添加标签,需要添加一个辅助标签,比如类似下面的代码 {qb:hy name="xxa001" type="image" ...

  9. 各大厂 C/C++ 编程规范详解

    来吧!各大厂知名规范体系~ 各有特点各有侧重~ Google C++ Style Guide Google C++ Style Guide,[中文版],简称 GSG,谷歌的 C++ 编程规范,在国内有 ...

  10. PyCharm配置远程Docker环境

    1. docker 配置 使用-p参数暴露一个端口用于ssh连接. docker run -itd --name wangchao_paddle --gpus all -p 8899:8888 -p ...