初识HDFS

hdfs介绍
hdfs如何存储数据?
首先有一个namenode,连着多个datanode。假设默认一个datanode大小为500G.当一个客户端不停的传输数据,如果分布式系统的磁盘空间被占满了,hdfs会横向扩展datanode节点。
如果上传的文件是1T,会怎么样?
当上传一个1T文件的时候,hdfs系统会讲当前文件按照BLOCK块进行切割并存储,默认blocksize为128M。
如果某个块丢失,怎么办?
每个块都会在其他个节点存有副本,默认dfs.repelication = 3.有两个副本。

用到最多的类为:hdfs.DistrbutedFileSystem

hdfs很多情况下是由众多廉价机组成的。
适合处理大数据。
适合分析数据,不适于修改数据。上传、下载
hdfs架构
在这里插入图片描述
心跳机制
datanode:该节点定时给namenode做心跳汇报,汇报自己还活着,默认每3秒汇报一次。

hdfs文件副本和块存储

元数据管理
namenode是管理元数据的,
fsimage是最终存储元数据的,保存全部的元数据信息
editslog:用于记录当前操作的日志,最新的一条记录会记录到edits.

在这里插入图片描述
1.发起通知:发起元数据合并的通知(checkpoint检查点)
2.namenode接收到通知后,生成一个新的edits临时文件,用于接收client的元数据写入
3.以http协议发送到2nn,进行元数据合并
4.元数据合并
5.将最终的合并元数据文件发送给namenode
6.生成edits.new临时文件改名为edits.

元数据合并的触发条件:1、每隔一个小时 2、数据达到100万条。

hdfs的读写流程
写入:
在这里插入图片描述
读取:
在这里插入图片描述

要从HDFS中删除文件夹,可以使用以下命令:

hadoop fs -rm -r -skipTrash /folder_name

hdfs集群刚启动,前30s默认是处于安全期的。

hdfs的高级使用命令使用hdfs不能使用hadoop

hdfs API操作
cdh版本

maven库
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_cdh5_maven_repo.html

    <repository>
          <id>cloudera</id>
          <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>

添加依赖
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_cdh5_maven_repo_514x.html

<dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.6.0-mr1-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.0-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.6.0-cdh5.14.0</version>
        </dependency>

hdfs api开发中 winutils问题解决
1、将解压缩出来的hadoop工程复制到一个没有中文、空格的路径中。
2、在windows中配置环境变量 HADOOP_HOME 和 Path
3、将hadoop.dll复制到System32中
4、重启电脑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值