HDFS

hadoop:适合一次写入,多次读出,不能修改的操作

(1)优点:

(1)高容错
数据自动保存多个副本,通过增加副本的形式,提高容错性
若一个符本丢失以后,可以自动回复
(2)适合处理大数据
数据规模:GB,TB甚至PB
文件规模:百万
(3)可构建在廉价机器上

(2)缺点:

(1)不适合低延时的数据访问,如毫秒级
(2)无法高效的对大量小文件处理
(3)不支持并发写入,文件修改
一个文件只能有一个写,不允许多个线程同时写
仅支持数据append,不支持文件的随机修改

(3)HDFS架构

NameNode(nn):就是Master

(1)管理HDFS的名称空间
(2)管理副本策略
(3)管理数据块(BLOCK)的映射信息
(4)处理客户端的请求

DataNode(dn):就是Slave,NameNode下达命令,DataNode执行实际的操作

(1)存储实际的数据块
(2)执行数据块的读写操作

Client:就是客户端

(1)文件切分,文件上传HDFS时,Client将文件切分成一个个block,然后上传
(2)与NameNode交互,获取文件的位置信息
(3)与DataNode交互,读取或者写入数据
(4)提供命令管理HDFS,比如NameNode格式化
(5)提供命令访问HDFS,比如对HDFS增删改查操作

Secondary NameNode:

(4)blocks

HDFS块的大小由dfs.blocksize来决定,默认在hadoop2.x是128M,老版本为64M
(1)如果块太小,增加寻址时间
(2)如果块太大,从磁盘传输的时间会大于寻址时间,处理数据慢
如果寻址时间为10ms
如果寻址时间是传输时间的1%,即传输时间为10ms/0.01=1000ms=1s,则为最佳状态
目前磁盘的传输时间为100MB/s

(5)shell

本地=>HDFS

put --(复制)
copyFromLocal --与put相同(复制) hadoop fs -copyFromLocal hdfs /
moveFromLocal --(剪切)
appendToFile

HDFS=>HDFS

cp hadoop fs -cp /etc /etc2
mv
chown
chgrp
chmod
mkdir
du
cat
rm hadoop fs -rm -r hdfs://hadoop102:9000/*
setrep hadoop fs -setrep 5 /README.txt

HDFS=>本地

get
getmerge --合并下载 hadoop fs -getmerge /test/* merge.txt
copyToLocal --与get相同

posted on 2020-11-10 17:34  happygril3  阅读(78)  评论(0)    收藏  举报

导航