1、HDFS是hadoop的一个存储子模块。
2、HDFS(全称Hadoop Distributed File System),即为hadoop的分布式文件系统
3、File System:文件系统,操作系统用来存储和管理文件的软件。即对文件进行增删改查等事务操作。
4、当需要存储的数据过大,超过一个计算机的存储范围。HDFS就可以将文件分成N个Block快存储在不同的计算机上。管理通过网络跨多个计算机的文件系统即为分布式文件系统。
1、适合存储大文件,用来管理PB级大数据;
2、处理非结构化数据(一般来说,使用HDFS将非结构化数据结构化,然后进行计算和处理);
3、流的方式访问,适合一次写入,多次读取;
4、由于是集群,运行于廉价的服务器上,成本低;
5、高容错性:少量服务器出现问题,用户察觉小;
6、可扩展性;
1、不适合处理低延尺数据访问
(1)、dfs在为了处理大量数据分析任务的,主要是为了达到高的数据吞吐而设计的。
(2)、为了处理低延迟的数据,后续会介绍HBase为更佳选择
2、不适合存储大量的文件
(1)、小文件会个hadoop的性能和扩展带来严重问题
(2)、可以利用SequenceFile、MapFile等方式递归小文件来解决
3、不支持多个用户同时写入及修改同一个文件
(1)、如果文件已经存在,则用户修改当前文件,只能追加
(2)、多个用户不能同时对同一个文件进行写操作,也不能随意修改文件的位置
hdfs dfs 开头
hadoop fs 开头
以下只用一个格式
hdfs dfs -help ls
hdfs dfs -ls / # 需要加根目录
hdfs dfs -touchz / # 需要目录路径
hdfs dfs - / # 将本地文件追加到hdfs中的文件
hdfs dfs -cat /
hdfs dfs - / # 将本地文件上传到hdfs根目录下,本地资源不删除
hdfs dfs - / # 和put一样效果
hdfs dfs - / # 将本地文件上传到hdfs根目录下,本地资源删除
hdfs dfs -get / /本地路径 # 如果本地路径不指定,则默认下载在当前路径
hdfs dfs -copyToLocal / /本地路径 # 和get用法一样
hdfs dfs -mkdir [-r] /parent # 加上-r表示创建多层目录
hdfs dfs -rm / # 删除文件
hdfs dfs -rm [-r] /文件名 # 删除文件夹,加-r表示递归删除
hdfs dfs -mv / / # 修改文件名
hdfs dfs -mv / /test # 将移动到test文件夹中
hdfs dfs -cp / /text
hdfs dfs -cp /text /text1
hdfs dfs -find /查找路径 -name 文件名
下面是hdfs和getconf结合使用
hdfs getconf -namenodes
hdfs getconf -confkey dfs.namenode.fs-limits.min-block-size
hdfs getconf -nnRpcAddresses
下面是hdfs与dfsadmin结合使用
hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode enter
hdfs dfsadmin -safemode leave
hdfs dfsadmin -printTopology
下面为hdfs与fsck结合使用
hdfs fsck / -files -blocks -locations
其他命令
hadoop checknitive
hadoop namenode -format
hadoop jar jar名 主类 参数
hdfs dfs -text /文件名
小技巧:如果在使用命令的时候不知道格式可以使用
hdfs dfs -help 命令
来查看用法,或者直接回车会自动显示使用方式
1、向hdfs上次文件时,hdfs上文件存储是分成N个block快存储在集群中不同的datanode中
2、每个block快在默认的情况下,大小为128M
3、在HDFS中,一个不足的128M大小的block块,占用的磁盘存储也只有实际的大小,而不是128M
1、hdfs在设计的时候,为了保证数据的可用及容错,每个block共有三分,即副本
2、每个副本都是存储在不用datanode中
3、使用配置文件l设置副本数
<property><name&plication</name><value>3</value>
</property>
block存储图
在现实生产中,往往会有很多服务器,会有很多机房,很多机架
datanode在不同的机上block分布规律:
1、第一个block副本会存储在客户端链接的datanode上
2、第二个会存储在与第一个block副本物理距离最近的datanode上
3、第三个会存储在第二个副本相同机架上不同的datanode上
机架感知需要自己配置,详细见
hdfs dfs -setrep -R 4 /path
后面会持续更新
本文发布于:2024-01-31 14:44:27,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170668346929270.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |