Hadoop
HDFS介绍:
Hadoop是一个分布式系统基础架构,源于Google的GFS论文(Hadoop Distributed File System),简称HDFS,易于扩展的文件分布式系统,运行在大量普通廉价机机器上,提供容错机制为大量用户提供性能不错的文件存取服务。
Hadoop三大核心: HDFS、MapReduce、YARN
Hadoop四大模块:
- Hadoop common:为其他Hadoop模块提供基础设施
- Hadoop DFS:应该高可靠、高吞吐量的分布式文件系统
- Hadoop MapReduce:一个分布式并行离线计算框架
- Hadoop YARN:一个新的MapReduce框架,任务调度与资源管理
设计目标
- 自动快速检测应对硬件错误
- 流式访问数据
- 移动计算比移动数据本身更划算(IO)
- 简单一致性模型
- 异构平台可移植
HDFS特点:
- 优点:
- 高可靠性:按位存储和处理数据的能力值得信赖
- 高扩展性:存储计算资源不够时,可以横向的线性扩展机器,一个机器中可以包含数以千计的节点
- 高效性:能够在节点之间动态的移动数据,并保证各个节点的动态平衡,因此处理速度非常快
- 高容错性:能够自动保存数据的多个副本,并且能自动将失败的任务重新分配
- 缺点:
- 不适合低延迟数据访问
- 无法高效存储大量小文件
- 不支持多用户写入及任意修改文件
HDFS架构图
- 存储数据要进行块的切分
- 切分块是在client端
- 切分大小128M(hadoop2.) 64(hadoop.)
- 上传数据的时候,每个block只上传一次
- 默认副本数为3,会在集群中进行集群内的复制
name启动流程
- fsimage是一个镜像文件,这个文件在hdfs开启的时候说空的,edits日志文件也是空的
- 在存储文件的时候会将文件写入到edits中
- namenode在启动时会将edits文件和fsimage文件进行合并,将合并的结果放入内存中
- 在namenode启动时候,写入的元数据信息会写在edits日志文件中做为备份,内存中也写入一份
- secondaryNamenode要在指定的时间点将namenode中的fsimage和edits文件进行合并
- fsimage文件可以直接加载到内存中
- edits日志文件要加载,必须重新演播一遍
- 所以secondaryNamenode定期从namenode中以HTTP get方式进行数据的复制
- 复制的数据就新建一个edits_new
- 将fsimage和edits复制过来进行合并
- 将数据发送到NameNode中进行替换
Hadoop Safe Mode
- 查询当前是否安全模式
Hadoop dfsadmin -safemode get
safe mode is ON
- 等待safemode关闭,以便后续操作
hadoop dfsadmin -safemode wait
- 退出安全模式
hadoop dfsadmin -safemode leave
safe mode is OFF
- 设置用户safemode
hadoop dfsadmin -safemode enter
safe mode is ON
配置完hdfs配置文件 需要先进行格式化
格式化:hdfs namenode -format
hadoop HDFS命令(hdfs dfs -命令)hadf dfs -cat /file.txt
cat : 查看
checksum : 校验和
cp : 复制
copyFromlocal : 从本地复制
copyTolocal : 复制到本地
mv : 移动
moveFromlocal : 从本地移动
moveTolocal : 移动到本地
count : 计数
df : 查看文件信息
du : 查看文件大小
ls : 查看列表
put : 从本地复制(copyFromlocal)
get : 复制文件到本地(copyTolocal)
mkdir : 创建目录
rm : 删除
tail : 查看最后10行
touchz : 创建空文件