Hadoop HDFS——Hadoop实战初级部分学习笔记

5、Hadoop HDFS

HDFS 分布式文件系统,高容错性,部署到成本低的硬件;

 

HDFS架构设计

典型的观察者结构,NameNode(1)-----(*)DataNode, NameNode存储元数据,DataNode存小数据,

 

HDFS设计目标

假设节点失效是常态,任何一个节点挂了,不影响使用(自动的备份,副本);

简单一致的模型,假设一次写-多次读 模式;

流式数据访问;

不支持文件并发写入

不支持文件修改

轻便的访问异构的平台

 

http://coderplay.iteye.com/blog/1067463

HDFS不适合

存储小文件、随机读、文件修改

 

 

 

HDFS概念

NameNode:存储元数据,元数据存在内存和磁盘,保存文件—block DataNode之间的映射关系;

 

DataNode:存文件内容,磁盘上,维护block id 到datanode本地文件的映射

 

SecondaryNameNode:将NameNode的fsimage与edit log从NameNode复制到临时目录 将fsimage同edit log合并并产生新的fsimage  将产生的新的fsimage上传给NameNode 清除NameNode中的edit log

 

NameNode是单点,SecondaryNameNode可以认为是NameNode的备份,不是热切,可能会丢数据。

 

Block块

数据块,HDFS默认的最基本存储单位,默认64M

 

好处:抽象的,跟磁盘大小无关,可以存储到多个节点上;

 

 

 

HDFS命令行接口

hadoop fs命令

 

跟linux的类似

 

ls(显示一层) lsr(递归)

 

du(显示所有文件及大小)  dus(文件夹大小)  count(多少个文件、大小)

 

hadoop fs –help mv  帮助

 

mv(移动)

cp(复制)

rm(删除) rmr(递归删除)

mkdir(新文件夹)

 

put(从本地文件复制到hdfs)

get(从hdfs复制到本地)

getmerge(合并目录中到多个文件 到 本地系统)

 

copyFromLocal(从本地拷贝到hdfs)

movelFromLocal(从本地移动到hdfs)

 

copyToLocal(从hdfs拷贝到本地)

 

 

text(允许压缩包)

cat(输出到控制台)

 

stat(分析,如修改时间 块大小 复制)

 

setrep(指定备份几份)

 

touchz(往文件写一个时间戳 内容是yyyy-MM-dd HH:mm:ss(文件必须零长度))

 

tail

 

chmod  chowm chgrp

 

 

 

 

hdfs dfsadmin –report    dfs信息

 

hdfs dfsadmin –savemode  enter 进入  leave 离开  get得到当前状态 wait等待结束

 

hdfs dfsadmin –saveNamespace 保存内存信息到磁盘

 

hdfs dfsadmin –saveNamespace 保存内存信息到磁盘(必须安全模式)

 

hdfs dfsadmin –refreshNodes 比如新加节点 重新通信

 

hdfs dfsadmin –upgradeProgress status 升级信息

hdfs dfsadmin –finalizeUpgrade 停止升级

 

hdfs dfsadmin –metasave filename 存meta到本地文件

 

hdfs dfsadmin –setQuota 2 path 最多放几个文件(从现在开始的)

hdfs dfsadmin –clrQuota 2 path 清除

 

hdfs dfsadmin –setSpaceQuota 2 path  (包含当前的)

hdfs dfsadmin –clrSpaceQuota 2 path  (包含当前的)

 

hdfs dfsadmin –setBalancerBandwidth [byte per second] 负载均衡带宽

 

 

Hadoop文件系统

KFS:差点写成KFC了, c++写的

S3(本地):Amazon S3支持的

S3(基于块):

HAR:

 

我的博客:http://sishuok.com/forum/blogPost/list/6915.html

你可能感兴趣的:(Hadoop HDFS——Hadoop实战初级部分学习笔记)