• Hadoop之HDFS介绍


    1. 概述

    • HDFS是一种分布式文件管理系统。
    • HDFS的使用场景:
      • 适合一次写入,多次读出的场景,且不支持文件的修改;
      • 适合用来做数据分析,并不适合用来做网盘应用;

    1.2 优缺点

    • 优点:
      • 高容错性
      • 适合处理大数据
    • 缺点:
      • 不适合**低延时*数据访问;
      • 无法高效的对大量小文件进行存储;
      • 不支持并发写入,文件随机修改:
        • 一个文件只能有一个写,不允许多个线程同时写;
        • 仅支持数据append(追加),不支持文件的随机修改。

    1.3 HDFS 组成架构

    • NameNode(nn):
      • 管理HDFS的名称空间;
      • 配置副本策略;
      • 管理数据块(Block)映射信息;
      • 处理客户端读写请求;
    • DataNode:NameNode下达命令,DataNode执行实际操作;
      • 存储实际的数据块;
      • 执行数据块的读/写操作;
    • Client: 客户端
      • 文件切分:文件上传到HDFS时,Client将文件切分成一个一个的Block,然后进行上传;
      • 与NameNode交互,获取文件的位置信息;
      • 与DataNode交互,读取或者写入数据;
      • Client提供一些命令来管理HDFS,比如NameNode格式化;
      • Client可以通过一些命令来访问HDFS,例如对HDFS进行增删改查操作;
    • Secondary NameNode:并非NameNode的热备。当NameNode挂掉后,它并不能马上替换NameNode并提供服务;
      • 辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode;
      • 在紧急情况下,可辅助恢复NameNode;

    1.4 HDFS 文件块大小

    • HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定
      • 默认大小在Hadoop2.x版本是128M,老版本是64M;
    • HDFS块的大小设置主要取决于磁盘传输速率。

    2. HDFS的 Shell 操作

    2.1 基本语法

    • bin/hadoop fs 基本命令
      • bin/hadoop fs -getmerge /测试目录/* ./本地目录指定文件名.txt: 合并下载多个文件
      • bin/hadoop fs -du -s -h /测试目录: 统计当前文件夹总的大小;
      • bin/hadoop fs -du -h /测试目录: 统计当前文件夹各项的大小;
    • bin/hdfs dfs 基本命令: “dfs”是“fs”的实现类。

    参考资料:

  • 相关阅读:
    指针总结与地址
    寻址方式
    为什么要有指针?
    指针与变量
    Wired Memory
    Memory Usage Performance Guidelines
    内存管理与运行时
    Java jvm 内存回收机制
    GC详解及Minor GC和Full GC触发条件总结
    Java的内存回收机制详解X
  • 原文地址:https://www.cnblogs.com/linkworld/p/10926219.html
Copyright © 2020-2023  润新知