阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HDFS学习小结(Hadoop2.xx版本)

118次阅读
没有评论

共计 3932 个字符,预计需要花费 10 分钟才能阅读完成。

Hadoop2.xx 集群搭建:http://www.linuxidc.com/Linux/2016-07/133644.htm

1.HDFS(Hadoop Distributed File System):hadoop 分布式文件系统,由管理文件系统元数据(metadata)的 NameNode 和存储实际数据的 DataNode 组成。
        通过分布式的存储机制支持线性增长的海量存储能力

        数据自动冗余,无须通过 RAID 进行备份
        一次写入,多次读,不能修改,简单一致,1.xx 版不支持 append 功能
        按照“数据就近”原则分配节点执行

2.NameNode: 管理 hdfs 的命名空间
    保存 metadata 信息:
        文件 owership 与 permissions
        文件包含那些 Block
        Block 保存在哪个 DataNode
    NameNode 的 metadata 信息存储到磁盘中的 fsimage, 在 hdfs 启动后加载到内存;

    内存中 NameNode 操作信息会保存到磁盘中的 edits 日志中。
 
NameNode 启动时的安全模式阶段:
    1)不产生数据写

    2)收集 DataNode 的报告,当数据块达到最小副本数以上,则视为安全;当安全块达到一定比例后,过若干时间退出安全模式

    3)针对副本数不足的数据块,自动复制使其达到最小副本数

3.DataNode:真正存储数据的地方
    以 Block 形式存储,每个块 Block 预设 128M,比目前大多数文件系统的 block 块大,但是物理存储上不会占用这么多的空间
    每个区块至少分到三台(默认)DataNode 上,其副本数可以调整。其副本机制提高可靠度和读取吞吐量
    启动 DataNode 线程时,遍历本地文件系统,产生一份 hdfs 数据块和本地文件的对应关系列表,并汇报给 NameNode。

4.Secondary NameNode:
        当 NameNode 启动时,需要合并硬盘上的 fsimage(HDFS 的最新状态)和 edits(fsimage 创建后的),需要消耗大量的启动时间。这里的 Secondary NameNode 定时去下载 namenode 的 fsimage 文件和 edits 文件进行合并,同时 namenode 上启用新的 edits,然后再将合并后的 fsimage 上传覆盖 namenode,并开启一个新的 edits 日志,减少了 hdfs 启动启动时间。

5.Checkpoint node:可能是为了避免名字上的混淆,1.0.4 版本后建议使用 CheckPoint Node 去代替 Secondary NameNode,作用及配置基本一样。
    使用 bin/hdfs namenode -checkpoint 去启动
    启动 NameNode 时 -importCheckpoint,可以从 checkpioint 中导入 namenode
    常用配置文件:
        dfs.namenode.checkpoint.period  #edits 触发一次合并的时间
        fs.checkpoint.size  #edits 触发一次合并的大小临界值
        dfs.namenode.checkpoint.dir  #指定 secondary namenode 的保存路劲
        dfs.namenode.checkpoint.edits.dir  #指定 secondary namenode 的 edits 保存路径

6.Backup Node:namenode 的完全备份。除了提供 Checkpoint 功能,还复制 master 内存中的 Namespace 到自己的内存中。Backup Node 不仅接收 NameNode 上的 edits 保存到磁盘,还应用 edits 到自己的 Namespace 内存复本,建立了 Namespace 的完全备份。
    目前 hdfs 只支持一个 backup node,使用了 backup 之后就不能使用 checkpoing 了
        dfs.backup.address  #backup node 的位置
        dfs.backup.http.address  #backup node web 界面地址
   
    dfs.backup.address 配置的节点上,运行 bin/hdfs namenode -checkpoint

7. Block 三副本放置策略:
        副本 1:client 的节点上

        副本 2:不同机架的节点上

        副本 3:与副本 2 同一机架的另一个节点上

8.DataNode 损坏处理机制:
        1. 从 DataNode 中读取 Block 的时候,它会计算 checksum
        2. 计算后的 checksum 与创建时值不一样,说明该 block 已经损坏
        3.client 会读取其他 DataNode 上的 block,NameNode 标记该块已经损坏,然后复制 block 达到预设的副本数(通常在文件创建后三周(默认)验证其 checksum)

9.HDFS 的访问方式:
        HDFS SHELL 命令

        HDFS JAVA API

        HDFS REST API

        HDFS FUSE

        HDFS lib hdfs:C/C++ 访问接口

        thrift
。。。

10.Hadoop 与 HDFS 的交互类 shell:hadoop fs –help 命令
    hadoop fs –ls PATH:查看指定目录下内容
    hadoop fs –cat PATH/FILE:查看 FILE
    hadoop fs –put LOCAL_PATH/FILE HADOOP_PATH: 将本地文件存储至 hadoop
    hadoop fs –put LOCAL_PATH HADOOP_PATH: 将本地文件夹存储至 hadoop
    hadoop fs –rm PATH/FILE:删除 FILE
    hadoop fs –rmr PATH:删除 PATH 下所有文件
    hadoop fs –mkdir PATH: 新建目录
    hadoop fs  -touchz  PATH/FILE:创建一个文件
    hadoop  fs  –mv  PATH/OLD_FILE  PATH/NEW_FILE:  文件重命名
            ……

11.hdfs 管理
hadoop-deamon.sh start namenode #启动 namenode
hadoop-deamon.sh start datanode #启动 datanode

hdfs dfsadmin -help:获取一些 hdfs 管理的操作
    -report:报告 HDFS 的基本统计数据
    -safemode:安全模式
    -finalizeUpgrade:移除集群最后一次升级前的备份
    -refreshNodes:重新读取 hosts 和 exclude 文件(dfs.hosts.exclude 选项中指定),NameNode 重新识别节点的改动
    -printTopology:显示集群的拓扑
    -upgradeProgress status/details/force:显示升级状态 / 升级状态的细节 / 强制升级操作

hadoop  fsck:文件管理

        <path>              检查这个目录中的文件是否完整
        -move              破损的文件移至 /lost+found 目录
        -delete            删除破损的文件
        -openforwrite  打印正在打开写操作的文件
        -files                打印正在 check 的文件名
        -blocks            打印 block 报告(需要和 -files 参数一起使用)
        -locations        打印每个 block 的位置信息(需要和 -files 参数一起使用)
        -racks              打印位置信息的网络拓扑图(需要和 -files 参数一起使用)
start-balancer.sh -threshold: 数据块重新分布

可以通过 Web 服务查看集群中 NameNode 和 DataNode 的状态。
    http://master:50070/:显示集群当前基本状态

 

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133680.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3932字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中