大数据技术原理与应用 第三版 林子雨 期末复习(二) Hadoop HDFS HBase

Hadoop生态系统

在这里插入图片描述

HDFS

HDFS结构

Name Node(主节点、名称节点)
文件的创建删除等操作,同时管理数据节点和文件映射的关系
Second Name Node(第二名称节点)
冷备份、减缓主节点存储压力
Data Node(从节点、数据节点)
存储数据

块大小:64MB或128MB

Name Node与Second Name Node与Data Node

Name Node内包含两个文件:FsImage、Editlog
FsImage可以看作一个文件的快照,内容包括了块大小以及组成文件、访问权限等
Editlog可以看作为一个编辑日志,内容包括了对文件进行的一系列操作

Name Node启动时会将FsImage读入内存中,然后执行Editlog内容更新FsImage并删除旧Editlog

Data Node 是分布式文件系统HDFS的工作节点,负责数据的存储以及读取,每个数据文件均保存在Data Node的Linux文件系统中。

Second Node用于解决Editlog逐渐变大的问题具体操作如下:
在这里插入图片描述
由于上述操作导致若在t1~t2之间出现错误,将会造成数据丢失。同样因为每隔一段时间拉取FsImage、EditLog所以Second Name Node 能够在一定程度上起到冷备份的作用。

数据冗余存储

默认情况下HDFS保存3份同样数据,保证容灾性。

HDFS的数据读写过程

在这里插入图片描述

HBase

定义

HBase是一个高可靠、高性能、可伸缩的面向列的键值分布式数据库

HBase数据模型

HBase四维坐标
<行键、列族、列限定符、时间戳>
在这里插入图片描述

HBase功能组件

HBase总共包含三个组件:
(1)库函数
(2)一个Master主服务器:用于管理和维护Reigon分区表信息
(3)多个Reigon服务器:用于存储Reigon
注意的是客户端并不是直接从Master服务器获取Reigon地址而是从Zookeeper中获取
同时客户端也不是从Master中获取数据而是取得Reigon位置信息后从Reigon服务器中获取
Reigon定义:一个行区间

HBase运行机制

当客户端取数据时候需要三层访问
层次 名称 作用
第一层 Zookeeper文件 记录ROOT表的位置信息
第二层 -ROOT-表 记录.META表的Reigon位置信息,-ROOT-表只有一个Reigon。通过-ROOT-表可以访问.META中的信息
第三层 .META表 存储用户数据表中的信息.META可以有多个Reigon,保存所有位置信息

层次名称作用
第一层Zookeeper文件记录ROOT表的位置信息
第二层-ROOT-表记录.META表的Reigon位置信息,-ROOT-表只有一个Reigon。通过-ROOT-表可以访问.META中的信息
第三层.META表存储用户数据表中的信息.META可以有多个Reigon,保存所有位置信息

相关命令

HDFS

hdfs文件的相关操作主要使用hadoop fs、hadoop dfs、hdfs dfs 命令,以下对最常用的相关命令进行简要说明。
hadoop fs -ls 显示当前目录结构,-ls -R 递归显示目录结构
hadoop fs -mkdir 创建目录
hadoop fs -rm 删除文件,-rm -R 递归删除目录和文件
hadoop fs -put [localsrc] [dst] 从本地加载文件到HDFS
hadoop fs -get [dst] [localsrc] 从HDFS导出文件到本地
hadoop fs - copyFromLocal [localsrc] [dst] 从本地加载文件到HDFS,与put一致
hadoop fs -copyToLocal [dst] [localsrc] 从HDFS导出文件到本地,与get一致
hadoop fs -test -e 检测目录和文件是否存在,存在返回值$?为0,不存在返回1
hadoop fs -text 查看文件内容
hadoop fs -du 统计目录下各文件大小,单位字节。-du -s 汇总目录下文件大小,-du -h 显示单位
hadoop fs -tail 显示文件末尾
hadoop fs -cp [src] [dst] 从源目录复制文件到目标目录
hadoop fs -mv [src] [dst] 从源目录移动文件到目标目录

HBase

list 列出Hbase中存在的所有表
alter 修改列簇(column family)模式
count 统计表中行的数量
create 创建表
describe 显示表相关的详细信息
delete 删除指定对象的值(可以为表,行、列对应的值,另外也可以指定时间戳的值)
deleteall 删除指定行的所有元素值
disable 使表无效
drop 删除表
enable 使表有效
exists 测试表是否存在
exit 退出Hbaseshell
get 获取行或单元(cell)的值
incr 增加指定表,行或列的值
put 向指向的表单元添加值
tools列出Hbase所支持的工具
scan 通过对表的扫描来获取对用的值
status 返回Hbase集群的状态信息
shutdown 关闭Hbase集群(与exit不同)

本文及后续文章内容均由个人总结,仅用于复习记录,如发现错误请大家伙指正,侵删。

  • 3
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值