当前位置:   article > 正文

Hadoop大数据学习笔记1:HDFS_大数据hadoop追加

大数据hadoop追加

说明:本文为个人对HDFS课程学习的笔记,自省自查,也供他人查阅。

1. 概述

1.1. 知识点

HDFS:分布式文件系统,适用于一次写入、多次读出的场景,不适合更改写入的数据(常见操作是追加)。

文件块:块大小通常为128MB或者256MB,HDFS块大小主要取决于磁盘传输速率

1.2. 优缺点

优点:

① 高容错性:自动保存多个副本,副本丢失后能自动恢复。

② 适合处理大数据:可以处理规模大或者数量多的大数据。

③ 可建立在廉价机器上。

缺点:

① 不适合低延时数据访问。

② 无法高效对大量小文件进行存储:一个小文件占据一个文件块,占用大量内存,并且小文件存储的寻址时间会超过读取时间。

③ 不支持并发写入、 随机修改。

1.3. 组成

2. Shell常用命令

2.1. 上传

  1. # HDFS上创建文件夹
  2. hadoop fs -mkdir /filename
  3. # 将本地文件剪切到HDFS文件夹
  4. hadoop fs -moveFromLocal /本地文件路径 /HDFS文件夹路径
  5. # 将本地文件复制到HDFS文件夹
  6. hadoop fs -copyFromLocal /本地文件路径 /HDFS文件夹路径
  7. # 将本地文件复制到HDFS文件夹
  8. hadoop fs -put /本地文件路径 /HDFS文件夹路径
  9. # 将本地文件追加到HDFS文件后
  10. # hadoop fs -appendToFile /本地文件路径 /HDFS文件路径

2.2. 下载

  1. # 将HDFS文件拷贝到本地
  2. hadoop fs -copyToLocal /HDFS文件路径 /本地文件夹路径
  3. hadoop fs -get /HDFS文件路径 /本地文件夹路径

2.3. 直接操作

  1. # 类似linux命令
  2. hadoop fs -ls /HDFS文件路径
  3. hadoop fs -cat /HDFS文件路径
  4. hadoop fs -chmod /HDFS文件路径
  5. hadoop fs -cp /HDFS文件路径1 /HDFS文件路径2
  6. hadoop fs -mv /HDFS文件路径1 /HDFS文件路径2
  7. hadoop fs -rm /HDFS文件路径
  8. hadoop fs -setrep 3 /HDFS文件路径 #设置文件的副本数为3

3. 读写流程

3.1. 写数据流程

3.1.1. 流程图

3.1.2. 接收数据节点选择

写数据过程中,NameNode选择距待上传数据最近距离的DataNode接收数据。

节点距离:两个节点到达最近公共祖先的距离之和。

3.1.3. 副本存储节点选择(机架感知)

第一个副本在客户端所处的节点上,若客户端在集群外,则随机选一个。

第二个副本在另一个机架的随机一个节点上。

第三个副本在第二个副本所在机架的随机节点上。

3.2. 读数据流程

4. 节点工作机制

4.1. NameNode和2NameNode

4.1.1. 工作流程图

NameNode和2NameNode的区别在于NN保存了最新的操作(在inprogress文件中),而2NN只有历史记录。

4.1.2. Fsimage和Edits

NameNode格式化后,将在/opt/module/hadoop-3.1.3/data/tmp/dfs/name/current目录中产生如下文件:

①Fsimage文件:HDFS元数据永久检测点,包括HDFS文件系统的所有目录和文件inode的序列化信息。

②Edits文件:存放HDFS的所有更新操作,客户端执行的写操作会首先会被记录到Edits文件中。

③seen_txid文件:保存最后一个edits的数字。

相关命令:

  1. # 查看fsimage文件
  2. # hdfs oiv -p 文件类型 -i 镜像文件 -o 输出路径
  3. hdfs oiv -p XML -i fsimage_000000000025 -o /fsimage.xml
  4. # 查看edits文件
  5. # hdfs oev -p 文件类型 -i 编辑日志 -o 输出路径
  6. hdfs oev -p XML -i fsimage_000000000025 -o /edits.xml

4.2. DataNode

4.2.1. 工作流程图

4.2.2. 掉线时间设置

注意:hdfs-site.xml配置文件中的heartbeat.recheck.interval的单位为毫秒,dfs.heartbeat.interval的单位为秒。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/80298
推荐阅读
相关标签
  

闽ICP备14008679号