【Hadoop学习】中:HDFS、shell操作、客户端API操作、数据流、1NN、2NN原理、DataNode配置
一、概述
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配置的更多相关文章
- HDFS shell命令行常见操作
hadoop学习及实践笔记—— HDFS shell命令行常见操作 附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop ...
- 【Hadoop学习】HDFS中的集中化缓存管理
Hadoop版本:2.6.0 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4146398.html 概述 ...
- hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作
附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSy ...
- hadoop学习(五)----HDFS的java操作
前面我们基本学习了HDFS的原理,hadoop环境的搭建,下面开始正式的实践,语言以java为主.这一节来看一下HDFS的java操作. 1 环境准备 上一篇说了windows下搭建hadoop环境, ...
- hadoop笔记之hdfs shell操作
HDFS命令行操作 HDFS命令行操作 (以下是hadoop 1.x 版本的命令使用) 装好hadoop之前首先要进行一个格式化 hadoop namenode -format 运行之后,可以将文件夹 ...
- HDFS基础和java api操作
1. 概括 适合一次写入多次查询情况,不支持并发写情况 通过hadoop shell 上传的文件存放在DataNode的block中,通过linux shell只能看见block,看不见文件(HDFS ...
- Hadoop学习笔记—HDFS
目录 搭建安装 三个核心组件 安装 配置环境变量 配置各上述三组件守护进程的相关属性 启停 监控和性能 Hadoop Rack Awareness yarn的NodeManagers监控 命令 hdf ...
- HDFS 05 - HDFS 常用的 Java API 操作
目录 0 - 配置 Hadoop 环境(Windows系统) 1 - 导入 Maven 依赖 2 - 常用类介绍 3 - 常见 API 操作 3.1 获取文件系统(重要) 3.2 创建目录.写入文件 ...
- 【Hadoop学习】HDFS 短路本地读
Hadoop版本:2.6.0 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4146296.html 背景 ...
- Hadoop学习笔记---HDFS
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.HDFS能提供高吞吐 ...
随机推荐
- MySQL 在 Kubernetes IPVS 模式下引发的 TCP 超时问题
文章转载自:https://mp.weixin.qq.com/s/XQ2SlCYxvXPY0rRRO-CURA
- Solutions:如何运用Elastic App Search快速建立出色的React搜索体验
建立搜索体验是一项艰苦的工作. 乍一看似乎很容易:建立一个搜索栏,将数据放入数据库,然后让用户输入对该数据库的查询. 但是,在数据建模,底层逻辑以及(当然)总体设计和用户体验方面,有很多事情要考虑. ...
- KVM更改虚拟机默认存储路径
Virt默认的虚拟机存储路径是/var/lib/libvirt/images,如下图所示 接下来我们创建一个新的存储池,用来存储新建的虚拟机.存储池的名称为vm, 路径为/home/kvm/ (/ho ...
- 3_MyBatis
一. 引言 1.1 什么是框架? 软件的半成品, 解决了软件开发过程中的普适性问题, 从而简化了开发步骤, 提升了开发效率 1.2 什么是ORM框架? ORM(Object Relational Ma ...
- .Net下的分布式唯一ID
分布式唯一ID,顾名思义,是指在全世界任何一台计算机上都不会重复的唯一Id. 在单机/单服务器/单数据库的小型应用中,不需要用到这类东西.但在高并发.海量数据.大型分布式应用中,这类却是构建整个系统的 ...
- Podman容器基础(二)
Podman容器技术基础(二) 目录 Podman容器技术基础(二) 容器的使用 用户操作 用户配置文件 容器卷 容器的使用 运行一个容器 [root@cent1 ~]# podman pull ht ...
- 魔改xxl-job,彻底告别手动配置任务!
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. xxl-job是一款非常优秀的任务调度中间件,轻量级.使用简单.支持分布式等优点,让它广泛应用在我们的项目中,解 ...
- Java I/O(1):模型与流
在1990年以前,有一帮工程师们认为未来(1990年以后)会有很多小型设备需要得到电脑操控(不得不说,想法非常超前),鉴于当时市面上并没有任何一款编程语言能够跨平台,而且能够在诸如烤面包机这种小型设备 ...
- if、where、trim、choose、when、otherwise、foreach
1.if if标签可通过test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行:反之标签中 的内容不会执行 <!--List<Emp> getEmpListBy ...
- Linux实战笔记__Ubuntu20.04上搭建Vulhub漏洞环境
安装python3和pip3 安装docker 安装docker-compose 上传解压vulhub-master.zip 启动漏洞环境 进入某漏洞目录,执行docker-compose up -d ...