1.hdfs(hadoop distributed file system):
1)超大文件
2)流式数据访问:一次写入,多次读取。通常由数据源生成或者从数据源复制而来。
3)商用硬件:对节点出错的自动容错
4)低时间延迟的数据访问
不适合低时间延迟的数据访问。hdfs为高数据吞吐量应用优化,提高时间延迟为代价。对于低延迟的访问需求,hbase更加适合
5)大量的小文件
由于namenode将文件系统的源数据存储在内存中,因此数据的存储依赖于namenode内存的大小。
每个文件的存储信息大约在150字节,如果一百万个文件,至少需要300M内存。
6)多用户存储,任意修改文件
hdfs文件可能只有一个writer,而且写操作总是将数据添加在文件末尾,不支持多个写入者的操作,也不支持对文件的任意位置做修改。
HDFS概念:
1.data block:
文件系统块一般为几千字节,磁盘块一般512字节。系统通过df和fsck来维护
hdfs的block大小默认为64MB,文件被划分为chunk,作为独立的存储单元。
与其他文件存储系统不同,hdfs小于一个块大小的文件不会占据整个块的空间。
hdfs的block大于磁盘的block 目的是为了最小化寻址开销。
.hadoop streaming (使用unix标准流做为hadoop和应用程序的接口)
map输出的键值对是以一个制表符分割的行,并且写入标准输出reduce函数的输入个数与之相同。