2、HDFS 入门

HDFS是Hadoop的分布式文件系统,用于海量数据存储,适合一次写入多次读出。NameNode管理文件命名空间和副本策略,DataNode存储数据,Client负责文件操作。HDFS具有高可靠性和容错性,但不支持毫秒级存储和并发写入。文章列举了如mkdir、put、copyToLocal等HDFS常用命令。
摘要由CSDN通过智能技术生成
一、概述

​ HDFS(Hadoop Distributed File System)是分布式文件存储系统,主要用来解决海量数据的存储问题。HDFS比较适合一次写入,多次读出的场景。

请添加图片描述

  • NameNode(NN)
    • 管理HDFS的namespace
    • 维护副本策略
    • 管理Block的映射信息
    • 处理客户端的读写请求
  • DataNode
    • 数据实际存储
    • 执行数据的读写操作
  • Client
    • 对文件进行切分成Block,再上传到HDFS
    • 与NameNode,获取文件的位置信息
    • 与DataNode,数据的读写操作
  • Second NameNode(2NN)
    • 辅助NameNode,定期合并Fsimage和Edits,分担NN压力
二、优缺点
  • 优点
    • 通过多个副本保证可靠性,增加容错性
    • 能够处理数据规模大的场景,GB、TB甚至PB
  • 缺点
    • 无法做到毫秒级别的存储数据
    • 无法高效处理大量小文件的场景
    • 不支持并发写入,文件随机修改
三、常用命令行
# 在hdfs的默认目录下面新建文件夹,默认在/user/{用户名}下面
hdfs dfs -mkdir -p input

# 往hadoop推送本地文件
hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input

# 上传文件并指定为新的文件名
hdfs dfs -put ./core-site.xml input/core-site2.xml

# 从hdfs上面下载文件到本地
hdfs dfs -copyToLocal input/core-site.xml ./

# 将本地的core-site.xml文件追加到目标文件最后面
hdfs dfs -appendToFile core-site.xml input/core-site.xml

# 将input文件夹里面含有dfs的字符串筛选出来
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep input output 'dfs[a-z.]+'

# 读取计算后的结果
hdfs dfs -cat output/*

# 删除计算后的结果文件
hdfs dfs -rm -r output

# 查看hdfs里面input目录的全部文件的大小总和
hdfs dfs -du -s -h input

# 查看hdfs里面input目录下面每个文件的大小
hdfs dfs -du -h input

tips: 更多命令行官方查询入口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值