hadoop第二天——1. HDFS入门

一、HDFS入门

HDFS:Hadoop Distribute File System     Hadoop分布式文件系统

1. 底层设计思想

  • 如何解决大数据存储不下的问题?---------------------分布式存储
  • 如何解决分布式存储浏览文件便捷的问题?---------元数据管理,记录文件对应信息
  • 如何解决数据过大上传下载耗时的问题?------------分块存储
  • 如何解决机器故障导致数据丢失的问题?------------副本机制
  • 如何方便用户浏览操作文件系统?---------------------抽象成为目录树结构

2. HDFS设计目标

  • 故障的检测和自动快速恢复是HDFS的核心架构目标。
  • HDFS上的应用主要是以流式读取数据。HDFS被设计成适合批量处理,而不是用户交互式的。相较于数据访问的访问时间,更注重数据访问的高吞吐量。
  • 支持大文件。应该提供很高的聚合数据带宽。
  • 大部分HDFS应用对文件的要求是write-one-read-many访问模型。一个文件一旦创建、写入、关闭之后就不需要修改了。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。
  • 移动计算的代价比移动数据的代价低。
  • 在异构的硬件和软件平台上的可移植性。

3. HDFS重要特性

首先,它是一个文件系统,用于存储文件,通过统一的命名空间目录树来定位文件。
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

  • 主从结构:
    master/slave架构
    主角色:namenode:管理文件系统的元数据(目录树命名空间)
    从角色:datanode:负责具体的的数据块的存储
    二者各司其职共同配合,对外提供文件存储服务。
    一般一个HDFS集群是有一个NameNode和一定数目的DataNode组成。

  • 分块存储
    HDFS中的文件在物理上是分块存储(block)的,块的大小可以通过配置参数来规定。
    hadoop 2.x    默认128M
    hadoop 1.x    默认64M

  • 名字空间(NameSpace)
    HDFS支持传统的层次型文件组织结构。
    NameNode负责维护文件系统的名字空间。

  • NameNode元数据管理
    我们把目录结构及文件分块位置信息叫做元数据。NameNode负责维护整个hdfs文件系统的目录树结构,以及每一个文件所对应的block块信息(block的id,及所在的datanode服务器)。

  • DataNode数据存储
    文件的各个block的具体存储管理由datanode节点承担。datanode需要定时向NameNode汇报自己持有的block信息。
    存储多个副本(副本数量可以通过参数设置dfs.replication,默认是3)。

  • 副本机制

  • hadoop默认3副本存储、(总共副本数 1+2=3)

  • 一次写入多次读取
    不支持文件的修改,适合大数据离线分析

4. hdfs shell命令

格式:hadoop fs <args>

至于操作的是什么类型的文件系统,取决于后续url的schema信息。

hadoop fs -ls hdfs://node01:9000/      hdfs文件系统
hadoop fs -ls file:///                 本地文件系统
hadoop fs -ls gfs://node01:6688/       谷歌文件系统
hadoop fs -ls /            访问默认的文件系统,取决于环境的配置
                           (本人已在core-site.xml设置为hdfs,其原本默认为local)

shell常用命令

命令格式说明
-lshadoop fs -ls [-R] [-h] <args>查看指定路径的当前目录结构
-mkdirhadoop fs -mkdir [-p] <paths>创建空白文件夹
-puthadoop fs -put [-f] [-p] [-| <localsrc1>…] <dest>从本地文件系统上传至目标文件系统(-f 覆盖,-p保留访问和修改时间、所有权和时限)。客户端在哪里,哪里的机器就是本地文件系统。
-gethadoop fs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>下载文件(-ignorecrc跳过对下载文件的CRC检查,-crc为下载的文件写CRC校验和)
-appendToFilehadoop fs -appendToFile <localsrc> … <dist>追加一个文件内容到已经存在的文件末尾。适合于小文件合并
-cathadoop fs -cat [-ignoreCrc] URI [URI…]查看文件
-tailhadoop fs -tail [-f] URI查看文件的最后一千字节内容。-f选项将在文件增长时输出附加数据
-chmodhadoop fs -chmod [-R] URI改变文件的权限
-cphadoop fs -cp URI URI从hdfs的一个路径拷贝到hdfs的另一个路径
-mvhadoop fs -mv URI URI在hdfs目录中移动文件
-rmhadoop fs -rm [-r] URI删除
-getmergehadoop fs -getmerge URI URI合并下载多个文件到指定路径
-dfhadoop fs -df [-h]统计文件系统的可用空间信息
-duhadoop fs -du URI显示目录中所有文件大小,当只指定一个文件时,显示此文件的大小
-setrephadoop fs -setrep -w 副本数 [-R] URI改变一个文件的副本系数。-R 选项用于递归改变目录下所有文件的副本系数
-chgrphadoop fs -chgrp [-R] GROUP URI [URI …]更改文件组的关联。用户必须是文件的所有者,否则是超级用户
-chownhadoop fs -chown [-R] URI URI改变文件的拥有者。使用-R 将使改变在目录结构下递归进行
–copyFromLocalhadoop fs -copyFromLocal URI从本地文件系统中拷贝文件到 hdfs 路径去
-copyToLocalhadoop fs -copyToLocal URI从 hdfs 拷贝到本地

注:
① CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码
② 企业中一个文件存储多少副本最好上传之前决定 避免集群上修改造成集群性能的影响

示例:

hadoop fs -ls -R-h 
hadoop fs -mkdir -p /input
hadoop fs -put file:///root/1.txt hdfs://node01:9000/input
hadoop fs -put 1.txt  2.txt /input (上传当前目录下的文件)
hadoop fs -get hdfs://node01:9000/input/1.txt file:///root/
hadoop fs -get /nput/1.txt ./ (下载到当前目录下)
hadoop fs -appendToFile 2.txt 3.txt /input/1.txt
hadoop fs -cat /input/1.txt
hadoop fs -tail /input/1.txt
hadoop fs -chmod 777 /input/1.txt
hadoop fs -cp /hadoopinput/wordcount.txt /input/words.txt
hadoop fs -mv /input/words.txt /hadoopinput/
hadoop fs -rm -r /hadoopinput
hadoop fs -getmerge /input/*.txt ./xxx.txt
hadoop fs -getmerge /input/log.* ./log.sum
hadoop fs -df -h /
hadoop fs -du -h /input
hadoop fs -setrep -w 3 -R /input
hadoop fs -setrep -w 3 /input/1.txt
hadoop fs -chgrp othergroup /hadoop/hadoopfile
hadoop fs -chown someuser:somegrp /hadoop/hadoopfile
hadoop fs -copyFromLocal /root/1.txt /
hadoop fs -copyToLocal /aaa/jdk.tar.gz
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值