美文网首页
HDFS详解-02

HDFS详解-02

作者: 苏木logwood | 来源:发表于2017-12-21 14:25 被阅读37次

HDFS详解-02

1.机架 rack
机柜,每个机柜分别有各自的IP段
问题:
1.企业里为什么要机架?
    1.rack1挂了 rack2还能提供服务

2.管理的机器有机架我没有,当成一个笼统的虚拟的机架
    刀片服务器:192.169.138.xxx
    五台刀片服务器

130M文件 实际存储 130M * 3  block:6个
2.副本放置策略
    开发为主 + 大数据运营 ---> 架构
3.文件读流程 --> FSDataInputStream (面试题)
hadoop]$ bin/hdfs/dfs -cat /test.log

3.1 client通过FileSystem.open(filePath)方法,去与NN进行RPC通信,返回该文件的部分或者全部的block块(也包含该列表各block的分布在DataNode地址的列表),也就是返回FSDataInputStream对象

3.2 Client调用FSDataInputStream对象的read()方法。
    a.去与第一个块的最近的datanode进行read,读取完后会check,假如successful会关闭与当前DataNode通信;(假如check fail会记录失败的块+DataNode信息,下次就不会读取,那么会去该块的第二个DataNode地址读取)
    b.然后第二个块的遜的DataNode上的进行读取,check后会关闭与DataNode的通信。
    c.假如block列表读取完了,文件还未结束,那么FileSystem会从NameNode获取下一批的block的列表。(当然读操作对于client端是透明的,感觉就是连续的数据流)

3.3 Client调用FSDataInputStream.close()方法,关闭输入流。

要求:
      1.流程要清楚
      2.文件读流程 --> FSDataInputStream
4.文件写流程 --> FSDataOutputStream (面试题)
4.1 Client调用FileSystem.create(filePath)方法,去NameNode进行rpc通信,check该路径的文件是否存在以及有没有权限创建该文件。假如ok,就创建一个新文件,但是并不关联任何block,返回一个FSDataOutputStream对象;(假如not ok,就返回错误信息,所以写代码要try-catch)

4.2 Client调用FSDataOutputStream对象的write()方法,会将第一个块写入第一个DataNode,第一个DataNode写完传给第二个节点,第二个写完传给第三节点,当第三个节点写完返回一个ack packet给第二个节点,第二个返回一个ack packet给第一个节点,第一个节点返回ack packet给FSDataOutputStream对象,意思标识第一个块写完,副本数为3;然后剩余的块依次这样写。(当然写操作对于Client端也是透明的)

4.3 当向文件写入数据完成后,Client调用FSDataOutputStream.close()方法,关闭输出流,flush缓存区的数据包;

4.4 再调用FileSystem.complete()方法,告诉NameNode节点写入成功。

hadoop]$ bin/hdfs -dfs -put rzdata.log /xxx001/
put: `/xxx01/': No such file or directory: `hdfs://192.168.137.201:9000/xxx01'
找不到此文件

要求:
    1、流程要清楚
    2、文件写流程 --> FSDataOutputStream
    3、校验文件是否存在和权限问题
    4、最后一步DFS.complete()方法,告诉NN节点写入成功
https://wenku.baidu.com/view/fabe57b004a1b0717fd5dda5.html
5.命令
查看进程:
    ]$ jps 
查看全部信息:
    ]$ jps -l
查看jps是哪个软件里面的:
    ]$ which jps
    /usr/java/jdk1.8.0_45/bin/jps
查看:
    ]# cd /tmp/hsperfdata_hadoop/
    hsperfdata_hadoop]# ll
5.1正常流程:
]# jps
找到该进程的使用用户名称:
    ]# ps -ef | greo pid
    ]# su - 用户
    ]$ jps
5.2异常流程
假如进程被停止:
    rundeck]# jps
    rundeck]# kill  -9 pid
发现进程还有残留:
     rundeck]# ps -ef|grep pid
     pid信息残留,去/tmp/hsperfdata_hadoop文件夹删除该pid文件
    hsperfdata_hadoop]# rm -rf pid文件
切到hadoop用户,查看进程是否存在:
    ]# su - root
    ]$ jps
登录一台机器,jps命令+ps命令,残留信息删除
参考: http://blog.itpub.net/30089851/viewspace-1994344/
6.hadoop和hdfs 文件系统命令
hadoop]bin/hadoop fs 等价于 hdfs dfs
对文件的操作命令:
查看文件夹:
    hadoop]$ bin/hdfs dfs -ls /
创建文件夹:
    hadoop]$ bin/hdfs dfs -mkdir -p /rzdatadir001/001
查看文件内容:
    hadoop]$ bin/hdfs dfs -cat /test.log

上传和下载:
    上传本地文件到HDFS:
        hadoop]$ bin/hdfs dfs -put rzdata.log1 /rzdatadir001/001
    下载HDFS文件到本地:
        hadoop]$ bin/hdfs dfs -get /rzdatadir001/001/rzdata.log1 /tmp/  
    下载并重命名:
        hadoop]$ bin/hdfs dfs -get /rzdatadir001/001/rzdata.log1 /tmp/rzdata.log123   重命名
移动:
    从本地移动到HDFS:
        [-moveFromLocal <localsrc> ... <dst>]
    从HDFS移动到本地:
        [-moveToLocal <src> <localdst>]
删除:
    1.配置回收站
        core-site.xml
            fs.trash.interval : 10080

    2.命令:
        [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
            skipTrash:回收站
        
    hadoop]$ bin/hdfs dfs -rm -r -f /xxx --> 进入回收站,是可以恢复的
    hadoop]$ bin/hdfs dfs -rm -r -f -skipTrash /xxx --> 进入回收站,是不可以恢复的
    
修改权限:
    [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
    [-chown [-R] [OWNER][:[GROUP]] PATH...]
问题点:
hadoop]$ bin/hdfs -dfs -put rzdata.log /xxx
将rzdata.log重命名
作业:
1.副本放置策略、文件读写流程整理
2.文件系统命令测试
3.配置QQ邮件,rundeck能够调度发送邮件
4.jps命令测试

【来自@若泽大数据】

相关文章

  • NEXT学院-剑指大数据面试 百度网盘分享

    01、大数据面试导学02、课程目录03、hdfs架构详解04、图解hdfs核心组件的职责05、图解hdfs写数据流...

  • HDFS详解-02

    HDFS详解-02 1.机架 rack 问题: 2.副本放置策略 3.文件读流程 --> FSDataInputS...

  • HDFS详解-01

    HDFS详解-01 作业: HDFS详解: 1.三个进程 2.block(数据块) 3.副本数: 4.案例 5.架...

  • 大数据面试 | 01 HDFS面试热点--HDFS 架构及读写

    文章目录 HDFS 简介以及架构设计 详解SecondaryNameNode HDFS小文件危害以及解决方案 HD...

  • HDFS详解

    1、HDFS进程 NameNode:名称节点DataNode:数据节点 SecondaryNameNode:第二名...

  • HDFS详解

    一.HDFS简介 hdfs是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件,并且是分布式的,由...

  • hdfs详解

    hdfs简介 hdfs是hadoop中分布式的文件存储系统;具有高容错、可扩展;广泛的用于大数据项目中(不仅仅是h...

  • HDFS详解

    HDFS:是hadoop的核心子项目,是一个分布式的文件系统它整合了众多的文件系统,并提供了一个类FileSyst...

  • HDFS详解

    Hadoop2.X后可以划分为三部分:HDFS、MapReduce和Yarn,本篇主要看一下HDFS。 架构图 进...

  • HDFS详解

    认识HDFS HDFS的特点: 高容错性高吞吐量故障的检测和自动快速恢复流式的数据访问大数据集一次写入,多次读写 ...

网友评论

      本文标题:HDFS详解-02

      本文链接:https://www.haomeiwen.com/subject/kakawxtx.html