1、hdfs的组成架构:
namenode:就是master,它是一个主管,管理者。
datanode:就是slave.namenode下达命令,datanode执行实际的操作
client:就是客户端
sencondary namenode:并非namenode的后备。当namenode挂掉的时候,他并不能马上替换namenode并提供服务
2.hdfs:是分布式文件管理系统的一个。
3.hdfs的优点:
<1>.高容错性:数据自动保存多个副本。某个副本丢失以后,他可以自动恢复。
<2>.适合做大数据:数据规模:能够达到规模gb,tb甚至pb级别。文件规模:能够处理百万规模以上的文件数量,数量相当之强大
<3>.可构建在廉价机器上,通过多副本机制,提高可用性
缺点:
1)不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。
2)无法高效的对大量小文件进行存储。
(1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件
目录和块信息。这样是不可取的,因为NameNode的内存总是有限的;
(2)小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。
HDFS
3)不支持并发写入、文件随机修改。
(1)同一时间一个文件只能有一个用户执行写操作,不允许多个线程同
上传
(2)仅支持数据append (追加),不支持文件的随机修改。
上传文件ss. txt
4.为什么块的大小不能太大太小:默认大小在hadoop2.x为128M。块的大小设置太小,会增加寻址时间,程序一直在找块的开始位置。如果块设置太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需时间。导致数据处理这块数据时,会非常慢。
5.hdfs的shell命令:
bin/hadoop fs(列出所有目录)
.hadoop fs -help rm(帮助找到rm的用法)
hadoop fs -ls: 列出hdfs文件系统根目录下的目录和文件
hadoop fs -ls -R :列出hdfs文件系统所有的目录和文件
hadoop fs -mkdir 文件名:在HDFS上创建目录,只能一级一级的建目录,父目录不存在的话使用这个命令会报错
.hadoop fs -mkdir -p /文件名:所创建的目录如果父目录不存在就创建该父目录
hadoop fs -test -e /jinghang echo $? 检查文件是否存在。如果存在则返回0。
hadoop fs -test -z /jinghang/a.txt echo $?:检查文件是否是0字节。如果是则返回0。
hadoop fs -test -d /jinghang/a.txt echo $?:如果路径是个目录,则返回0,否则返回1
hadoop fs -moveFromLocal 本地/ hdfs :从本地剪切粘贴到HDFS
hadoop fs -appendToFile 本地/ hdfs:追加一个文件到已经存在的文件末尾
hadoop fs -cat 文件:显示文件内容
hadoop fs -chmod hdfs:修改文件
hadoop fs -chown jinghang:jinghang hdfs:修改权限
hadoop fs -copyFromLocal 本地 hdfs:从本地文件系统中拷贝文件到HDFS路径去
hadoop fs -copyToLocal hdfs:从HDFS拷贝到本地
hadoop fs -cp 一个hdfs文件 另个hdfs文件 :从HDFS的一个路径拷贝到HDFS的另一个路径
hadoop fs -mv hdfs文件 hdfs文件:在HDFS目录中移动文件
hadoop fs -get /hdfs文件 本地文件 等同于copyToLocal,就是从HDFS下载文件到本地
hadoop fs -getmerge /user/jinghang/test/* ./zaiyiqi.txt :合并下载多个文件,比如HDFS的目录 /user/jinghang/test下有多个文件:
hadoop fs -put 本地文件 hdfs文件:hdfs file的父目录一定要存在,否则命令不会执行
hadoop fs -tail -f 文件:查看大文件后10行
hadoop fs -rm 文件及目录:删除目录
hadoop fs -rmdir /test:删除空目录
hadoop fs -du -s -h文件夹:统计文件夹的大小信息
hadoop fs -setrep n 文件:设置HDFS中文件的副本数量
来源:CSDN
作者:XIAOMO__
链接:https://blog.csdn.net/XIAOMO__/article/details/103638216