_HDFS应用场景&原理&基本架构及使用方法

HDFS基本架构和原理

HDFS设计思想

image-20180611222401493

HDFS架构

image-20180611222442066

image-20180611222505133

HDFS数据块(block)

  • 注意: Hadoop2.x,block默认大小是128MB

image-20180611222645888

HDFS写流程

  • 创建Distributed FileSystem类
  • 询问 NameNode 要写的文件对否存在
  • 不存在就写入到 FSDataOutputStream 流中
  • 流写出去到一个 DataNode

image-20180611223228053

HDFS读流程

  • 客户端向 NameNode 询问 block 的位置
  • 按照客户端按照拿到的位置,向不同的DataNode 请求数据
  • ……

image-20180611223510239

HDFS典型物理拓扑

image-20180611223914168

HDFS副本放置策略

image-20180611223939952

HDFS可靠性策略

image-20180611224152799

HDFS不适合存储小文件

image-20180611224344481


HDFS程序设计

HDFS访问方式

image-20180611224934785

HDFS Shell命令

概览

image-20180611225131966

HDFS Shell命令—文件操作命令

image-20180611225219211

HDFS Shell命令—文件操作命令

image-20180611225604218

HDFS Shell命令—管理命令

image-20180611225727910

HDFS Shell命令—管理脚本

image-20180611225802894

HDFS Shell命令—文件管理命令fsck

image-20180611225931880

  • 查看帮助

image-20180611225914482

  • 用法示例

image-20180611230252655

HDFS Shell命令—数据均衡器balancer

  • 一般设置10% —— 15% 就差不多了

image-20180611230613854

HDFS Shell命令—设置目录份额

image-20180611230703142

※ HDFS Shell命令—增加/移除节点 ※

image-20180611230741126

HDFS Java

API介绍

image-20180611230953359

HDFS Java程序举例

image-20180611231047354

HDFS 多语言API—借助thrift

也是Apache的顶级项目

thrift执行流程

image-20180611231148955

hadoopfs.thrift接口定义

image-20180611231634046

PHP语言访问HDFS

image-20180611231653750

Python语言访问HDFS

image-20180611232052633


Hadoop 2.0新特性

image-20180611232948514

HA(高可用)与Federation(联邦)

image-20180611233058385

异构层级存储结构

背景

image-20180611233117295

原理

image-20180611233206158

image-20180611233227447

HDFS ACL

背景:现有权限管理的局限性

image-20180611233255196

基于POSIX ACL的实现

image-20180611233310082

HDFS快照

背景

image-20180611233337709

基本使用方法

image-20180611233357356

HDFS缓存

背景

image-20180611233423131

原理

image-20180611233446072

实现情况

image-20180611233502379

总结

image-20180611233521502

如果帮到你, 可以给我赞助杯咖啡☕️
0%