1.hdfs组成,namenode、datanode、senconarynamenode作用?

hdfs由namenode、datanode、senconarynamenode 、client组成
作用:
namenode:是一个主管,管理者
(1) 管理HDFS的名称空间;
(2)配置副本策略;
(3) 管理数据块(Block) 映射信息;
(4)处理客户端读写请求。

dataNode:
(1)存储实际的数据块;
(2)执行数据块的读/写操作。

senconarynamenode:
(1)辅助NameNode,分蜞工作量,比如定期合并Fsimage和Edits, 并推送给NameNode ;
(2)在紧急情况下,可辅助恢复NameNode。

2.hdfs是什么?

HDFS (Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树
来定位文件;其次它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各
自的角色。
HDFS的使用场景:适合一次写入,多次读出的场景,环支持文件的修改。适合用来做数
据分析,并钚适给用来做网应用。

3.hdfs的优缺点?

优点.
1)高容错性
(1)数据自动保存多个副本。它通过增加副本的形式,提高容错性。
(2)某一个副本丢失以后,它可以自动恢复。
2)适合处理大数据
(1)数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据;
(2)文件规模:能够处理百万规模以上的文件数量,数量相当之大。
3)可构建在廉价机器上,通过多副本机制,提高可靠性。
缺点:
1)不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。
2)无法高效的对大量小文件进行存储。
(1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件
目录和块信息。这样是不可取的,因为NameNode的内存总是有限的;
(2)小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。
3)不支持并发写入、文件随机修改。
(1)同一时间一个文件只能有一个用户执行写操作,不允许多个线程同
时写;
(2)仅支持数据append (追加), 不支持文件的随机修改。

4.hdfs的块大小?为什么不能太大,也不能太小?
(1) HDFS的块设置太小,会增加寻址时间,程序-直在找块的开始位置;
(2)如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开
始位置所需的时间。导致程序在处理这块数据时, 会非常慢。
总结: HDFS块的大小设置主要取决于磁盘传输速率。

4.归纳总结hdfs的shell相关命令 (命令和作用)

(1)-help:输出这个命令参数|
(2)-ls:显示目录信息
(3)-mkdir:在HDFS上创建目录
(4 )-test 测试检查目录或者文件是否存在.
-e 检查文件是否存在。如果存在则返回0。
-z 检查文件是否是0字节。如果是则返回0。
-d 如果路径是个目录,则返回0,否则返回1。
(5)-moveFromLocal:从本地剪切粘贴到HDFS
(6)-appendToFile:追加一个文件到已经存在的文件末尾
-cat:显示文件内容
(7)-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限、
(8)-copyFromLocal:从本地文件系统中拷贝文件到HDFS路径去
(9)-copyToLocal:从HDFS拷贝到本地
(10)-cp :从HDFS的一个路径拷贝到HDFS的另一个路径
(11)-mv:在HDFS目录中移动文件
(12)-get:等同于copyToLocal,就是从HDFS下载文件到本地
-getmerge:合并下载多个文件,比如HDFS的目录 /user/jinghang/test下有多个文件:log.1, log.2,log.3,…
(13)-put:等同于copyFromLocal
(15)-tail:显示一个文件的末尾
(16)-rm:删除文件或文件夹
(17).rmdir:删除空目录
(18)-du统计文件夹的大小信息
(19)-setrep:设置HDFS中文件的副本数量