分布式文件系统HDFS

一:概述

1.HDFS设计目标

2.HDFS核心组件

3.HDFS副本机制

4.HDFS环境搭建

5.HDFS shell命令  java api

6.HDFS读写流程

7.HDFS优缺点

二:

思考:如何创建一个分布式文件系统

重点:文件以多副本的方式进行存储

缺点:文件不管多大都存在一个节点上

1.缺点不管文件多大,在进行数据处理的时候很难进行并行处理,节点有可能成为网络瓶颈,很难进行大数据处理

2.负载均衡很难,每个节点利用率很低

二:分布式文件系统HDFS,来源于Google的GFS论文

发表在2003年,HDFS是GFS的克隆版

1.HDFS是非常巨大的分布式文件系统

2.运行在普通的廉价的机器上面

3.易扩展,为用户提供不错的文件的存储服务(130M的文件,拆分成128M和2M,一般情况还有3个副本)

1.架构

1个Master(NameNode/NN)带N个Slaves(DataNode/DN)

HDFS/YARN/HBase

重点:一个文件将会被拆分成多个Block

blocksize:128M

130M ==>  将会被拆分成2个Block: 128M 和 2M

NameNode:

NameNode是对文件系统的操作,而DataNode是对block的操作

NameNode:是对客户端请求和响应,和元数据(文件的名称,副本的系数,Block存放的DataNode)的管理

DataNode:

DataNode:1.存储用户文件对应的数据块(Block)

2.要定期向NameNode发送心跳信息,汇报本身及其所有block信息,健康状况

一个典型是,一台机器上运行一个NameNode,集群中的其他的机器,每一个都会运行一个DataNode

1个NameNode + N个DataNode

这个架构也并不排除在一台机器上运行多个DataNode,但是在生产环境上是不建议这么做

三:HDFS副本机制

replication factor : 副本因子,副本系数

一个文件里面的所有的block前面的都是一样,只有最后一个不一样

四:HDFS副本存放的策略

HDFS之深入简出(一)的更多相关文章

  1. 深入简出的nginx

    深入简出的nginx hosts的简单介绍 nginx的简单介绍 hosts介绍 谈到nginx我们不得不说hosts hosts的存放在C:\Windows\System32\drivers\etc ...

  2. Vuex 2.0 深入简出

    最近面试充斥了流行框架Vue的各种问题,其中Vuex的使用就相当有吸引力.下面我就将自己深入简出的心得记录如下: 1.在vue-init webpack project (创建vue项目) 2.src ...

  3. 大数据系列博客之 --- 深入简出 Shell 脚本语言(高级篇)

    首先声明,此系列shell系列博客分为四篇发布,分别是: 基础篇:https://www.cnblogs.com/lsy131479/p/9914747.html 提升篇:https://www.cn ...

  4. 分布式处理框架MapReduce的深入简出

    1).MapReduce的概述 2).MapReduce 编程模型 3).MapReduce架构 4).MapReduce编程 Google MapReduce论文,论文发表于2004年 Hadoop ...

  5. YARN 的深入简出

    1.YARN的产生背景 2.YARN的执行流程 3.YARN的概述 4.YARN的环境搭建 5.YARN的架构 6.如何提交作业到YaRN上执行 YARN的产生MapReduce1.x存在多种问题单节 ...

  6. 深入简出mysql--第一部分

    第二章: 1.sql分类 DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象的定义. 常用的语句关键字主要包括 ...

  7. 大数据系列博客之 --- 深入简出 Shell 脚本语言(提升篇)

    首先声明,此系列shell系列博客分为四篇发布,分别是: 基础篇:https://www.cnblogs.com/lsy131479/p/9914747.html 提升篇:https://www.cn ...

  8. 大数据系列博客之 --- 深入简出 Shell 脚本语言(基础篇)

    首先声明,此系列shell系列博客分为四篇发布,分别是: 基础篇:https://www.cnblogs.com/lsy131479/p/9914747.html 提升篇:https://www.cn ...

  9. hadoop深入简出(二)

    1.上传文件 Hadoop fs -put hello.txt / 2.查看上传的文件 hadoop fs -ls / hadoop fs -text /hello.txt 两个命令都可以 3.创建文 ...

随机推荐

  1. 类方法@classmethod

    通常情况下,如果我们要使用一个类的方法,那我们只能将一个类实体化成一个对象,进而调用对象使用方法. 式例 1 比如: class Hello(object):    def __init__:    ...

  2. windows下Jenkins环境搭建

    Jenkins简介 Jenkins是一个开源软件项目,业界著名的持续集成工具. Jenkins 安装准备 1.      安装java 并且配置jdk环境 2.      到Jenkins官网下载Je ...

  3. JDK7和JDK8concurrentHashmap区别

    哈希表 1.介绍 哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值. 哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个 ...

  4. Aop 基础

    基础文献 https://blog.csdn.net/abcd898989/article/details/50809321 简单Demo配置 pom.xml <!-- AOP --> & ...

  5. hive理论

    join操作: 这个 group by count()操作: 数据倾斜: 操作• Join on a.id=b.id• Group by• Count Distinct count(groupby)• ...

  6. OS位数,基本概念,结合iOS

    CPU位数,一般指CPU支持的指令集位数,32位CPU对应32位的指令集,64位的CPU对应64位的指令集,不过为了向下兼容,64位CPU也支持32位的指令集. 操作系统位数,一般指操作系统对应的指令 ...

  7. 尚硅谷springboot学习5-主入口类说明

    package com.atguigu; import org.springframework.boot.SpringApplication; import org.springframework.b ...

  8. qurtz.net

    Quartz.NET的使用(附源码)(作者 陈珙)   简介 虽然Quartz.NET被园子里的大神们写烂了,自己还是整理了一篇,结尾会附上源码地址. Quartz.NET是一款功能齐全的开源作业调度 ...

  9. Python中os模块使用方法

    os模块提供了对系统环境.文件.目录等操作系统级的接口函数.本文主要描述os模块和os.path模块常用函数以及常用实例. os模块函数 os.getcwd() 获取当前工作的目录. os.listd ...

  10. kvm配置USB直通

    参照:https://www.linuxidc.com/Linux/2014-12/110919.htm WebVirMgr界面是没有直接的途径了,只能靠修改xml文件,在<device> ...