zoukankan      html  css  js  c++  java
  • HDFS简单入门

    HDFS简介

    HDFS(Hadoop Distributed File System)是Hadoop项目的核心子系统,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展、高吞吐量等特性为海量数据提供了不怕故障的存储,为超大数据集的应用处理带来了很多遍历。

    HDFS基础概念

    数据块

    HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。
    和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。
    不同于普通文件系统的是,HDFS中如果一个文件小于一个数据块大小,并不占用整个数据块的存储空间。

    NameNode和DataNode
    HDFS体系结构中有两类节点,一类是NameNode,又叫“元数据节点”;另一类是DataNode,又叫“数据节点”。

    1) 元数据节点用来管理文件系统的命名空间

    其将所有的文件和文件夹的元数据保存在一个文件系统树中。
    这些信息也会在硬盘上保存成以下文件:命名空间镜像(namespace image)及修改日志(edit log)
    其还保存了一个文件包括哪些数据块,分布在哪些数据节点上。然而这些信息并不存储在硬盘上,而是在系统启动的时候从数据节点收集而成的。

    2) 数据节点是文件系统中真正存储数据的地方。

    客户端(client)或者元数据信息(namenode)可以向数据节点请求写入或者读出数据块。
    其周期性的向元数据节点回报其存储的数据块信息。

    3) 从元数据节点(secondary namenode)

    从元数据节点并不是元数据节点出现问题时候的备用节点,它和元数据节点负责不同的事情。
    其主要功能就是周期性将元数据节点的命名空间镜像文件和修改日志合并,以防日志文件过大。
    合并过后的命名空间镜像文件也在从元数据节点保存了一份,以防元数据节点失败的时候,可以恢复。

    启动HDFS

    最初,你必须格式化配置的HDFS文件系统,打开namenode(HDFS服务器), 然后执行以下命令。

    $ hadoop namenode -format
    

    格式化HDFS后,启动分布式文件系统。以下命令将启动namenode以及数据节点作为集群。

    $ start-dfs.sh

    查看Hadoop版本

    [hadoop@centos7-node01 bin]$ ./hadoop version
    Hadoop 2.6.1
    Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b4d876d837b830405ccdb6af94742f99d49f9c04
    Compiled by jenkins on 2015-09-16T21:07Z
    Compiled with protoc 2.5.0
    From source with checksum ba9a9397365e3ec2f1b3691b52627f
    This command was run using /home/hadoop/share/hadoop/common/hadoop-common-2.6.1.jar
    

      

    列出HDFS中的文件

    在服务器中加载信心后,我们可以使用 "ls" 找到目录中的文件列表,文件的状态。

    hadoop fs -ls <args>
    

      

    将数据插入HDFS

    假设我们在本地系统中的文件名为 README 中的数据,该文件应该保存在HDFS文件系统中。按照以下步骤在Hadoop文件系统中插入所需的文件。

    步骤1

    你必须创建一个输入目录。

    $ hadoop fs -mkdir /usr/input
    

    步骤2

    使用put命令将数据文件从本地系统传输到Hadoop文件系统。

    $ hadoop fs -put README /usr/input/README
    

      

    步骤3

    你可以使用ls命令验证文件。

    $ hadoop fs -ls /usr/input

      

    从HDFS检索数据

    假设我们在HDFS中有一个名为README的文件。以下是从Hadoop文件系统中检索所需文件的简单演示。

    步骤1

    最初,使用cat命令查看HDFS中的数据。

    $ hadoop fs -cat /usr/output/README
    

      

    步骤2

    使用get命令将文件从HDFS获取到本地文件系统。

    $ hadoop fs -get /usr/output/README ./README_LOCAL

     

    从HDFS删除文件

    [hadoop@centos7-node01 bin]$ ./hadoop fs -ls /usr/input
    Found 1 items
    -r--------   2 hadoop supergroup         15 2017-07-24 10:49 /usr/input/README
    [hadoop@centos7-node01 bin]$ ./hadoop fs -rmr /usr/input/README
    rmr: DEPRECATED: Please use 'rm -r' instead.
    17/07/24 20:59:40 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
    Deleted /usr/input/README
    [hadoop@centos7-node01 bin]$ ./hadoop fs -ls /usr/input
    

      

    查看HDFS的基本统计信息

    [hadoop@centos7-node01 bin]$ ./hdfs dfsadmin -report
    Configured Capacity: 37492883456 (34.92 GB)
    Present Capacity: 31821979596 (29.64 GB)
    DFS Remaining: 31821922304 (29.64 GB)
    DFS Used: 57292 (55.95 KB)
    DFS Used%: 0.00%
    Under replicated blocks: 0
    Blocks with corrupt replicas: 0
    Missing blocks: 0
    
    -------------------------------------------------
    Live datanodes (2):
    
    Name: 192.168.114.129:50010 (centos7-node02)
    Hostname: centos7-node02
    Decommission Status : Normal
    Configured Capacity: 18746441728 (17.46 GB)
    DFS Used: 28646 (27.97 KB)
    Non DFS Used: 2835136538 (2.64 GB)
    DFS Remaining: 15911276544 (14.82 GB)
    DFS Used%: 0.00%
    DFS Remaining%: 84.88%
    Configured Cache Capacity: 0 (0 B)
    Cache Used: 0 (0 B)
    Cache Remaining: 0 (0 B)
    Cache Used%: 100.00%
    Cache Remaining%: 0.00%
    Xceivers: 1
    Last contact: Mon Jul 24 21:05:25 CST 2017
    
    
    Name: 192.168.114.130:50010 (centos7-node03)
    Hostname: centos7-node03
    Decommission Status : Normal
    Configured Capacity: 18746441728 (17.46 GB)
    DFS Used: 28646 (27.97 KB)
    Non DFS Used: 2835767322 (2.64 GB)
    DFS Remaining: 15910645760 (14.82 GB)
    DFS Used%: 0.00%
    DFS Remaining%: 84.87%
    Configured Cache Capacity: 0 (0 B)
    Cache Used: 0 (0 B)
    Cache Remaining: 0 (0 B)
    Cache Used%: 100.00%
    Cache Remaining%: 0.00%
    Xceivers: 1
    Last contact: Mon Jul 24 21:05:26 CST 2017
    

    显示块信息

    [hadoop@centos7-node01 bin]$ ./hdfs fsck / -files -blocks
    Connecting to namenode via http://centos7-node01:50070
    FSCK started by hadoop (auth:SIMPLE) from /192.168.114.128 for path / at Mon Jul 24 21:48:42 CST 2017
    / <dir>
    /system <dir>
    /usr <dir>
    /usr/bin 7 bytes, 1 block(s):  OK
    0. BP-1474938344-192.168.114.128-1500634710798:blk_1073741825_1001 len=7 repl=2
    
    /usr/input <dir>
    Status: HEALTHY
     Total size:    7 B
     Total dirs:    4
     Total files:   1
     Total symlinks:                0
     Total blocks (validated):      1 (avg. block size 7 B)
     Minimally replicated blocks:   1 (100.0 %)
     Over-replicated blocks:        0 (0.0 %)
     Under-replicated blocks:       0 (0.0 %)
     Mis-replicated blocks:         0 (0.0 %)
     Default replication factor:    2
     Average block replication:     2.0
     Corrupt blocks:                0
     Missing replicas:              0 (0.0 %)
     Number of data-nodes:          2
     Number of racks:               1
    FSCK ended at Mon Jul 24 21:48:42 CST 2017 in 1 milliseconds
    
    
    The filesystem under path '/' is HEALTHY
    

      

    关闭HDFS

    你可以使用以下命令关闭HDFS

    $ stop-dfs.sh
    
  • 相关阅读:
    Python网络爬虫与信息提取(一)——Requests库的安装、Requests库的get()方法、爬取网页的通用代码框架
    CodeForces#632Div.2C. Eugene and an array
    CodeForces#631Div.2B_Dreamoon Likes Permutations
    hdu6228Tree
    hdu6576Worker(最小公倍数)
    hdu6575Budget
    hdu6570Wave (暴力求解)
    poj2010 Moo University
    poj1258Agri-Net(最小生成树)
    poj2377Bad Cowtractors (最小生成树变形之——最大生成树)
  • 原文地址:https://www.cnblogs.com/steven-note/p/7227753.html
Copyright © 2011-2022 走看看