zoukankan      html  css  js  c++  java
  • hdfs

    1、什么是分布式文件系统?

    是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。

    2、为什么会有分布式文件系统?

    数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。

    3、分布式文件系统的优势

    1)通透性

    2)容错性(因为有副本机制,即使有些节点脱机,整体也不会造成数据损失)

    3)不适合小文件(因为hdfs每一个文件都会在namenode中生成对应文件的源信息,如果小文件过多时,会导致源文件过大,namenode的压力太大。)

    HDFS:

    分为Namenode和Datanode

    1、Namenode

    维护整个文件系统的文件目录树,文件、目录的源信息和每个文件对应的数据列表。接收用户的操作请求。

    文件包括:

    1):fsimage:元数据镜像文件,存储某一时段的NameNode内存源数据的信息

    2):edits:操作日志文件

    3):fstime:文件最后一次的修改时间

    2、Datanode

    以文件块(block块)的形式存储真实数据。

    block块:

    默认128MB,最大128M,如果是200M的文件,会分成一个128M和一个72M的文件。

    Replication:

    为了安全,采用副本机制。默认副本为3个

    3、dfsadmin

    1)bin/hdfs dfsadmin -setQuota 10 lisi

    限制用户最大的文件(目录)数,方便多用户操作

    2)安全模式:bin/hdfs dfsadmin –safemode

    4、副本存放策略

    第一个副本放在客户端所在的datanode节点上(如果客户端不在集群范围内,则这第一个节点是随机选的,不过系统会选择负载较少且离得近的节点)

    第二个副本放在与第一个副本不同机架的任意节点上

    第三个副本与第二个副本同一机架,任意节点上

    5、hdfs操作命令:

    1)上传文件:

    bin/hdfs dfs -put 文件名 hdfs://主机名或ip:9000/

    相当于将文件传到hdfs上

    2)下载文件:

    bin/hdfs dfs -get hdfs://主机名或ip:9000/aa cd ./

    下载到当前目录下

    3)移动或重命名(远程到远程)

    bin/hdfs dfs -mv hdfs://主机名或ip:9000/aa hdfs://主机名或ip:9000/tmp

    6、hadoop操作文件命令

    #hadoop fs -ls /  查看HDFS根目录
    #hadoop fs -mkdir /test 在根目录创建一个目录test
    #hadoop fs -mkdir /test1 在根目录创建一个目录test1
    #echo -e 'hadoop second lesson' >test.txt
    #hadoop fs -put ./test.txt /test
    或#hadoop fs -copyFromLocal ./test.txt /test
    #cd .. 
    #hadoop fs -get /test/test.txt . 
    或#hadoop fs -getToLocal /test/test.txt .
    #hadoop fs -cp /test/test.txt /test1
    #hadoop fs -rm /test1/test.txt
    #hadoop fs -mv /test/test.txt /test1
    #hadoop fs -rmr /test1  
    #hadoop fs –appendToFile

    7:Hadoop Archives

    由于hdfs不适合存储大量小文件,Hadoop Archives就是为了缓解存储大量小文件时会消耗namenode的内存的问题。

    它可以将大量小文件合并,将其打成har包。

    创建文件:

    hadoop archive -archiveName xxx.har -p  /src  /dest

    将src目录下的所有文件打包成xxx.har,然后将打完的包放在dest下。

    查看内容:

    hadoop fs -lsr har:///dest/xxx.har

  • 相关阅读:
    Linux服务器超简单安装Python3环境、Ipython、Jupyter、virtualenv、virtualenvwrapper教程全在这了
    websocket是如何进行建立连接与通信的?(简单理解)
    理解 Python 装饰器看这一篇就够了
    通过Python计算一个文件夹大小
    Python之禅
    centos7之使用最新版的kubeadm体验k8s1.12.0
    gitlab之gitlab-ci和gitlab-runner<二>
    docker-compose部署elk+apm
    k8s之安装docker-ce17.06
    git命令小记
  • 原文地址:https://www.cnblogs.com/tzq9308/p/5093500.html
Copyright © 2011-2022 走看看