cloudera learning2:HDFS

存入HDFS的文件会按块(block)划分,默认每块128MB。默认1个block还有2个备份。备份增加了数据的可靠性和提高计算效率(数据本地化)。

HDFS部署可选择不支持HA,也可选择支持HA。

NameNode内存中有metadata,metadata里主要记录的信息包括:file location,ownership,permissions,block‘s name and location。

metadata持久化在fsimage文件中,每次NameNode启动时加载到内存。Block location的信息并不存在fsimage中,而是启动后,dataNode定时发给NameNode.

对metadata进行的操作不仅保留在内存中,同时也会写到edit log文件中。当NameNode关闭后,内存中的metadata会消失,下次启动时,会动过edit log一条条还原所有的修改,这个过程导致NameNode启动非常的慢,后来增加了SecondaryNameNode,NameNode会定期的把fsimage和edit log传给Secondary NameNode. Secondary NameNode合并fsimage和log成为新的fsimg并传回NameNode,这样下次启动的时候,就可以只读fsimage了,大大减少启NameNode启动时间。每次SecondaryNameNode对fsimage的update叫做一次checkpoint。

SecondaryNameNode并不是NameNode的failover Node,只是它的“小秘书”。

SecondaryNameNode只在非HA的模式下存在,应该安装在与NameNode不同的机器上,SecondaryNameNode同样需要NameNode一样多的内存。

HDFS的HA是为了解决NameNode的单点问题。两个NameNode一个active,一个standby。standby负责checkpoint.

DataNode控制block的访问权限并保持与NameNode的通信。

哪怕只读取10M,也要把一个block 128M都读出来。支持cache block.

HDFS文件写入workflow:

1.client connect to NameNode。

2.NameNode在metadata中为要写入的文件建立一条记录并返回可以写入的blockname和dataNode lists给client。

3.client connect 第一个DataNode,send data。

4.第一个DataNode接收到data后connect第二个DataNode,send data.

5.第二个DataNode又connect第三个dataNode,send data。

6.请求写入结果,并返回给client

7.client向NameNode发送写入完成信息。

在写入的过程中,如果第一个DataNode的pipeline断掉了,会有一个新的pipline建立起来,向第二个dataNode继续写。NameNode会继续找新的dataNode进行备份。

在block被写入时,client会对每一个block计算checksum同时发给dataNode,从而保持数据的完整性。

时间: 2024-10-09 23:25:50

cloudera learning2:HDFS的相关文章

CDH quick start VM 中运行wordcount例子

需要注意的事情: 1. 对于wordcount1.0 ,按照http://www.cloudera.com/content/cloudera/en/documentation/HadoopTutorial/CDH4/Hadoop-Tutorial/ht_usage.html#topic_5_2 执行. 2.hadoop fs -mkdir /user/cloudera 这条语句意思是在hadoop文件系统下创建新文件夹.在终端中执行"cd /user/cloudera"是错误的,会出现

Alex 的 Hadoop 菜鸟教程: 第16课 Pig 安装使用教程

声明 本文基于Centos 6.x + CDH 5.x Pig 有什么用 hdfs虽说是一个文件空间,但是我们每次要查看hdfs上的文件的时候都要输入一大串命令,比如一个简单的ls都需要输入 : hdfs dfs -ls / ,而且还不能cd到某个目录,这样就造成了每次ls都要带上全路径的麻烦,能不能有一个工具可以模拟linux下的shell呢?Pig就实现了这样的需求,可以直接ls,可以cd到某个目录,比如这样 grunt> ls hdfs://mycluster/user/root/.sta

apache hadoop-2.6.0-CDH5.4.1 安装笔记

apache hadoop-2.6.0-CDH5.4.1 安装 1.安装Oracle Java 8 sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer sudo vi /etc/profile #set java environment export JAVA_HOME=/usr/lib/jvm/oracle-java8-insta

SQL/NoSQL两大阵营激辩:谁更适合大数据

企业在着手推动大数据项目的过程中,经常会遇到这样一个关键性的决策难题--到底该使用哪种数据库方案?经过综合考量,最终的选项往往只剩下 SQL 与 NoSQL 两种.SQL 具有骄人的业绩以及庞大的安装基础,但 NoSQL 却能够带来可观的收益并同样拥有不少支持者.在今天的辩论当中,我们将一同听听两大阵营中各位专家的意见. Network World 网站主编 John Dix 专门组织了此次辩论并邀请到多位专家.其中两位参与专家分别是 VoltDB 公司 CTO Ryan Betts 和 Cou

CDH 5.16.1 离线部署 & CDH 部署 Hadoop服务

参考 Cloudera Enterprise 5.16.x Installing Cloudera Manager, CDH, and Managed Services Installation Path B - Manual Installation Using Cloudera Manager Packages 一. 环境 1.1 系统节点信息 Hostname IP CPU(cores) Memory(GB) OS Service Remark master 172.30.200.75 2

Configuring Other CDH Components to Use HDFS HA with Cloudera Manager 5.2

Configuring HBase to Use HDFS HAnothing to do Upgrading the Hive Metastore to Use HDFS HA Configuring Hue to Work with HDFS HAadd HttpFS role instance under HDFS Restart the Hue service Configuring Impala to Work with HDFS HAimpala-shell -i impala-da

Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装

虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的,如果只是为了研究研究技术,而且是单机,内存较小的情况下,还是建议安装Apache的原生的集群拿来玩,生产上自然是Cloudera的集群,除非有十分强大的运维. 我这次配了3台虚拟机节点.各给了4G,要是宿主机内存就8G的,可以搞3台2G,应该也是ok的. 〇.安装文件准备 Hadoop 2.7.3:

十三:Transparent Encryption in HDFS(转)

透明加密:http://blog.csdn.net/linlinv3/article/details/44963429 hadoop透明加密  kms 简介 Hadoop Key Management Server(KMS)是一个基于HadoopKeyProvider API编写的密钥管理服务器.他提供了一个client和一个server组件,client和server之间基于HTTP协议使用REST API通信.Client是一个KeyProvider的实现,使用KMS HTTP REST A

Cloudera官方课程管理员(CCAH)、开发者(CCA175)、数据分析

Cloudera官方课程管理员(CCAH).开发者(CCA175).数据分析 咨询QQ1438118790 课程.课时.认证 (基于CDH5)  课程概述  培训对象/入学要求  Administrator管理员培训              培训时长:4天/28课时             认证考试:CCAH 从安装及配置.负载均衡及调整,以及 诊断和解决部署问题等各方面了解 Hadoop 系统管理员的概念和实践. 面向需要建立或维护 Hadoop 集群的管 理员.培训对象要求具备 Linux