之前在http://blog.csdn.net/t_ells/article/details/49301227文章中提到过Hadoop的核心由HDFS ,MapReduce以及yarn组成
Hadoop是一个由
Apache基金会所开发的
分布式系统基础架构,该项目的创建者Doug Cutting。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储
Hadoop实现了一个分布式文件系统(
Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
以64M为单位进行拆分 HDFS分区分为64M便于查找,优于硬盘(32M),多台服务器组合而成存储数据(存放方式打散 )如果不打散,在map中就不能平均分配 每个数据都可被随机复制为3份
NameNode:存放目录索引
DataNode:存放文件内容
备份:
1.统一节点
2.统一机架
3.统一的数据中心(不同机架的某一个节点)
4.不同的数据中心
每一个datanode都会记录下一个datanode的位置
NameNode会存放几个目录路径,客户端会通过 FSDataInputStream读取数据 分为多个block,
NameNode会存放下一个block路径
sname 定期的备份
name 存放目录
data 存放数据(可以有多个data)
回顾一下计算机存储单位
计算机存储单位一般用B,KB、MB、GB、TB,PB、EB、ZB、YB、BB来表示,它们之间的关系是:
位bit (比特)(Binary Digits):存放一位二进制数,即 0或 1,最小的存储单位。
字节 byte:8个二进制位为一个字节(B),最常用的单位。
1KB(Kilobyte 千字节) = 2^10 B = 1024 B;
1MB(Megabyte兆字节) = 2^10 KB = 1024 KB = 2^20 B;
1GB(Gigabyte吉字节) = 2^10 MB = 1024 MB = 2^30 B;
1TB(Trillionbyte太字节) = 2^10 GB = 1024 GB = 2^40 B;
1PB(Petabyte拍字节) = 2^10 TB = 1024 TB = 2^50 B;
1EB(Exabyte 艾字节) = 2^10 PB = 1024 PB = 2^60 B;
1ZB(Zettabyte泽字节) = 2^10 EB = 1024 EB = 2^70 B;
1YB(YottaByte尧字节) = 2^10 ZB = 1024 ZB = 2^80 B;
1BB(Brontobyte ) = 2^10 YB = 1024 YB = 2^90 B;
1NB(NonaByte ) = 2^10 BB = 1024 BB = 2^100 B;
1DB(DoggaByte) = 2^10 NB = 1024 NB = 2^110 B;
1KB (Kilobyte 千字节)=1024B,
1MB (Megabyte 兆字节 简称“兆”)=1024KB,
1GB (Gigabyte吉字节 又称“千兆”)=1024MB,
1TB (Trillionbyte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2的10次方),
1PB(Petabyte 千万亿字节 拍字节)=1024TB,
1EB(Exabyte百亿亿字节 艾字节)=1024PB,
1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,
1YB (Jottabyte 一亿亿亿字节 尧字节)= 1024 ZB,
1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.注:“兆”为百万级数量单位。
HDFS命令
ls 命令
hadoop fs -ls /
hadoop fs -ls hdfs://localhost:9000/(hdfs:分布式文件系统)
递归查看
hadoop fs -ls -R /user
mkdir 命令
hadoop fs -mkdir /data
rm 命令
删除文件
hadoop fs -rm /data
删除目录及子文件
hadoop fs -rm -r /data
put 命令
hadoop fs -put ./d01 /data/data2
get 命令
hadoop fs -get /data/data2/d01 ./
cat 命令
hadoop fs -cat /data/data2/d01
text 命令
允许查看压缩文件和序列化文件
hadoop fs -text /data/data2/d01
mv 命令
hadoop fs -mkdir /data1
hadoop fs -mv /data/data2/d01 /data1
getmerge 命令
hadoop fs -put ./d01 /data/data2
hadoop fs -put ./d02 /data/data2
将data2目录下的文件合并后复制到wf文件中
hadoop fs -getmerge /data/data2 ./wf
touchz 命令
hadoop fs -touchz /data/data2/d03
tail 命令(默认为最后的1000个字节)
hadoop fs -tail /data/data2/d02
distcp 命令
集群间拷贝文件
hadoop distcp hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo