HDFS

1.hdfs的特征
1.1大规模数据分布存储能力
1.2高并发访问能力
1.3强大的容错能力
1.4顺序式文件访问
1.5简单的一致性模型
1.6数据块存储方式

2.hdfs的基本组成结构与访问过程

450479979681767617.jpg

hdfs的基本文件访问过程:
2.1首先,用户的应用程序通过hdfs的客户端程序将文件名发送至NameNode。
2.2NameNode接收到文件名之后,在hdfs的目录中检索文件名对应的数据块,再根据数据块的信息找到保存数据块的DataNode地址,将这些地址回送到客户端。
2.3客户端接收到这些DataNode地址后,与这些DataNode并行地进行数据传输操作,同时将操作结果的相关日志(比如是否成功,修改后的数据块信息等)提交到NameNode。

数据块 命名空间 通信协议 客户端

3.hdfs可靠性设计

39013873837436241.jpg

安全模式、SecondaryNameNode、心跳包和副本重新创建、数据一致性(数据校验)、租约、回滚

4.hdfs文件存储组织和读写

4.1文件数据的存储组织
1.NameNode的目录结构
2.DataNode的目录结构
3.CheckPointNode

5.数据的读写过程
1.读取


2.写入

273686007260174005.jpg

6.hdfs文件操作系统操作命令

hdfs文件操作命令

查看文件:hadoop dfs -put Downloads/train.csv hdfs://localhost:9000/user/hadoop
hadoop dfs -cat hdfs://localhost:9000/user/hadoop/train.csv

改变文件所属用户组:chgrp
改变文件权限:chmod
改变用户的所属用户:chown
上传到hdfs:put
下载到本地:get
统计目录下目录数、文件数、字节数:count
hadoop dfs -count hdfs://localhost:9000/user/hadoop
结果:
3 11 87933 hdfs://localhost:9000/user/hadoop

将文件拷贝到目标路径
hadoop dfs -cp hdfs://localhost:9000/user/hadoop/output hdfs://localhost:9000/user/hadoop/input

显示目录下文件及大小
hadoop dfs -du /user/hadoop/input
累加大小:hadoop dfs -du -s /user/hadoop/input
易于阅读:hadoop dfs -du -h /user/hadoop/input

清空回收站
hadoop dfs -expunge

将文件拷贝到本地
hadoop dfs -get /user/hadoop/input/output/_SUCCESS /home/hadoop

将文件夹合并到本地文件夹下
hadoop dfs -get /user/hadoop/input/output/ /home/hadoop/merge_test

返回文件状态
hadoop dfs -ls

返回递归的文件状态
hadoop dfs -lsr

创建文件夹
hadoop dfs -mkdir /user/hadoop/hdfs

上传或下载后删除源文件
moveFromLocal
moveToLocal

移动数据
mv(不可跨文件系统)

put
上传,可以从标准输入中读取,用-表示本地文件。
hadoop dfs -put - /user/hadoop/hdfs/a.txt

rm、rmr
删除文件

setrep
更改副本数

stat
返回对应路径的状态信息
hadoop dfs -stat /user/hadoop/hdfs

tail
在标准输出中显示文件末尾1KB的数据
hadoop dfs -tail /user/hadoop/input/hdfs-site.xml

test
判断文件信息
hadoop dfs -test -e[-z或-d]

text
将文本文件或某些格式的非文本文件通过文本格式输出

touchz
创建一个大小为0的文件
hadoop dfs -touch

hdfs高级功能

archive(存在问题)
hadoop archive -archiveName hdfs.har -p /user/hadoop/input /outputdir

balancer
hadoop balancer [-threshold <threshold>]

distcp2

dfsadmin

6.hdfs实例
找出目录下所有包含hadoop文字的行,输入到本地文本中。

import java.util.Scanner;
import java.io.IOException;
import java.io.File;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;

public class resultFilter {
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        Configuration conf=new Configuration();
        FileSystem hdfs=FileSystem.get(conf);
        FileSystem local=FileSystem.getLocal(conf);
        System.out.println(args.length);
        Path inputDir,localFile;
        FileStatus[] inputFiles;
        FSDataOutputStream out=null;
        FSDataInputStream in=null;
        Scanner scan;
        String str;
        byte[] buf;
        int singleFileLines;
        int numLines,numFiles,i;
        if(args.length!=4){
            System.err.println("usage resultFilter <dfs path><local path>"+"<match str><single file lines>");
            return;
        }
        inputDir=new Path(args[0]);
        singleFileLines=Integer.parseInt(args[3]);
        try{
            inputFiles=hdfs.listStatus(inputDir);
            numLines=0;
            numFiles=1;
            localFile=new Path(args[1]);
            if(local.exists(localFile))
                local.delete(localFile,true);
            for(i=0;i<inputFiles.length;i++){
                if(inputFiles[i].isDir()==true)
                    continue;
                System.out.println(inputFiles[i].getPath().getName());
                in=hdfs.open(inputFiles[i].getPath());
                scan=new Scanner(in);
                while(scan.hasNext()){
                    str=scan.nextLine();
                    if(str.indexOf(args[2])==-1)
                        continue;
                    numLines++;
                    if(numLines==1){
                        localFile=new Path(args[1]+File.separator+numFiles);
                        out=local.create(localFile);
                        numFiles++;
                    }
                    buf=(str+"\n").getBytes();
                    out.write(buf,0,buf.length);
                    if(numLines==singleFileLines){
                        out.close();
                        numLines=0;
                    }
                }
                scan.close();
                in.close();
              }
            if(out !=null)
                out.close();
            }catch(IOException e){
                e.printStackTrace();
            }
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • 首先,我们在使用前先看看HDFS是什麽?这将有助于我们是以后的运维使用和故障排除思路的获得。 HDFS采用mast...
    W_Bousquet阅读 4,194评论 0 2
  • dfsadmin主要操作命令 dfsadmin [GENERIC_OPTIONS] [-report] [-saf...
    itpark阅读 7,201评论 2 8
  • HDFS的设计目标 通过上一篇文章的介绍我们已经了解到HDFS到底是怎样的东西,以及它是怎样通过多副本机制来提供高...
    陌上疏影凉阅读 1,443评论 0 3
  • 孤独的城市,忙碌的你,时有寂寞悄然心头。因工作压力,家庭琐事,感情创伤,所有承受不住的眼泪,似乎顷刻山河崩溃。此时...
    沐源工作室阅读 539评论 5 2
  • 姑苏初遇允竹的那天正是她在烟雨楼接客的第一天,那晚扬州城中纷纷扬扬下了满夜的桃花雨,姑苏金钗银凤,玉...
    鹿小酒子阅读 230评论 0 1