• 三、HDFS——Hadoop分布式文件系统


    一、hdfs的设计目标

    1.1、硬件错误是常态而不是异常。Hadoop的设计理念之一就是它可以运行在廉价的普通PC机上,因而硬件故障是常态。在硬件故障时,可通过容错机制保证数据的正确性、完整性,从而保证系统的正常运行。

    1.2、大文件存储。hdfs存储的文件大小一般在GB~TB的级别。

    1.3、流式数据访问。由于hadoop处理的都是大文件,因此流式数据访问方式更适合。流式数据访问是指一次性地读取一大块文件后再做处理,其特点是吞吐率高,延迟高;与之相反的是随机数据访问,特点是随机性地读取数据,延迟低。

    1.4、一次写入、多次读取。用户需要对文件实行一次写、多次读的访问模式。文件一旦上传到hdfs,便不能再做修改,如需修改,需删除文件重新上传。在上传完数据之后,便在该数据集上进行长时间的数据分析,也避免了数据一致性的问题。

    二、hdfs的缺点

    2.1、高延迟。

    2.2、不适合存储大量小文件。

    三、hdfs的基本架构图

    3.1、几个重要概念

    (1)NameNode。NameNode负责管理整个dfs文件系统的元数据,即,存储所有的文件目录、每个文件的具体信息(即:每个文件被分了多少块、每块文件的大小及存放位置)等。

    (2)DataNode。DataNode负责存放具体数据内容。

    (3)其他。Block是数据块,通常以64MB为单位,具有多个冗余副本。Rack表示机柜,一个数据块的多个副本被分散在多个机柜中,以便机柜宕机时,可及时复原数据。

    3.2、读数据流程

    client在向hdfs读数据时,首先向NameNode发出请求,获取文件的每个数据块的存放位置,然后client再去指定的DataNode读取数据,最后通知NameNode关闭文件。

    3.3、写数据流程

    client在向hdfs写数据时,首先告知NameNode创建文件,NameNode经过一系列的检查,反馈给client一个DataNode列表进行写数据操作。然后,client再去找特定的DataNode进行写数据,最后关闭文件。

    client在写入某一块特定的数据时,要同时备份多份数据块,假设要备份3份,则写数据的流程如下:

    client只向第一个DataNode写数据,随后的备份操作由DataNode传递下去,这样做的目的是减小client的读写压力,当备份完最后一块数据时,由最后一块数据所在DataNode向前一个DataNode发送ack确认包,此操作一直传递到client那里,这样,一份数据块的备份操作结束。

    四、hadoop2.6中的hdfs的常用命令

    hdfs官方命令查询:http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-common/FileSystemShell.html#mkdir

    4.1、ls——查看文件列表

    hadoop fs -ls /
    

    列出hdfs文件系统根目录下的目录和文件。

    hadoop fs -ls -R /
    

    列出hdfs文件系统所有的目录和文件。

    hadoop fs -ls /input
    

    列出hdfs文件系统中input目录中的目录和文件。

    4.2、put——上传文件到hadoop

    hdfs dfs -put localfile /input/file1
    

    将本地文件localfile拷贝到hadoop文件系统的input目录下的file1。

    hdfs dfs -put localfile1 localfile2 /input
    

    将本地文件localfile1、localfile2拷贝到hadoop文件系统的input目录下。

    4.3、get——下载文件到本地

    hdfs dfs -get /input/file localfile
    

    将hfds文件系统input目录下的file文件拷贝到本地localfile文件中。

    4.4、mkdir——创建目录

    hadoop fs -mkdir /input
    

    在hdfs文件系统的根目录下创建input文件夹。该方式只能一级一级地创建目录,父目录必须存在。

    hadoop fs -mkdir -p /dir1/dir2
    

    递归创建目录,如果父目录不存在就创建该父目录。

    4.5、rm——删除文件、文件夹

    hdfs dfs -rm /input/file1
    

    删除文件。

    hdfs dfs -rm -R /input
    或: hdfs dfs -rm -r /input

    删除文件夹。

    4.6、cp——复制文件

    hdfs dfs -cp /input/file1 /input/file2
    

    重命名文件,file1、file2都会存在。

    hdfs dfs -cp /input/file1 /another/file2
    

    不同目录下拷贝文件。

    hdfs dfs -cp /input/file1 /input/file2 /another
    

    拷贝多个文件到another目录下。

    4.7、mv——移动文件

    hdfs dfs -mv /input/file1 /another/file2
    

    不同目录下移动文件。

    hdfs dfs -mv /input/file1 /input/file2 /another
    

    移动多个文件到another目录下。

    4.8、cat——打印文件内容

    hdfs dfs -cat /input/file1
    

    打印/input/file1文件的内容。

    4.9、查看hdfs系统状态

    hdfs dfsadmin -report
    

    查看hdfs文件系统的基本信息:存储空间使用情况、datanode节点信息等。

  • 相关阅读:
    路径变量@PathVariable/请求参数@RequestParam的绑定以及@RequestBody
    JSR303后端校验详细笔记
    创建ssm项目步骤
    利用 R 绘制拟合曲线
    在 Linux 中将 Caps 根据是否为修饰键分别映射到 esc 和 Ctrl
    Master Transcription Factors and Mediator Establish Super-Enhancers at Key Cell Identity Genes
    Genomic Evidence for Complex Domestication History of the Cultivated Tomato in Latin America
    Variation Revealed by SNP Genotyping and Morphology Provides Insight into the Origin of the Tomato
    The genetic, developmental, and molecular bases of fruit size and shape variation in tomato
    微信支付jsapi
  • 原文地址:https://www.cnblogs.com/yuan2016/p/5789436.html
Copyright © 2020-2023  润新知