hadoop概念01-HDFS优缺点、架构、环境搭建流程

一、hadoop架构

1、HDFS:高可靠、高吞吐量的分布式文件系统
2、MapReduce:分布式的离线并行计算框架
3、YARN:作业调度与集群资源管理的框架
4、Common:支持其他模块的工具模块

二、HDFS优缺点

1、优点:

1、高容错性:多副本备份,一个副本丢失后可以自动恢复
2、数据量大:PB级
3、流式访问:序列化,流传输,保证数据的一致性
4、扩展成本低:增加集群机器的数量,可以是普通机器

2、缺点

1、不适合低延时:IO操作频繁
2、不可以并发:没有事务,没有锁机制,一次只能有一个写,没有多线程
3、不实用数据量小的文件:占空间(一个文件块block默认128M),寻址慢(数据分布在多个NN节点上)
4、不支持随机修改:只能append加

3、为什么不适合存储小文件

1、费空间:小文件也存储为128M的Block
2、逆分布:小文件无须分布式存储和计算
3、难寻址:小文件多,NN上的地址列表长,检索单个地址时间长

三、HDFS架构及各角色的作用

1、client:客户端

决定切块的大小、副本的数量。可以通过linux windows命令,也可以通过java、scala、pathon等操作

  • 文件切分(文件上传 HDFS 的时候,Client会将文件切分成多个Block进行存储)。
  • 与 NameNode 交互,获取文件的位置信息。
  • 与 DataNode 交互,读取或者写入数据。
  • 提供命令来管理 HDFS,如启动或关闭HDFS。
  • 通过命令访问HDFS。

2、NameNode:

元数据节点,负责处理客户端的请求

  • 管理 HDFS 的名称空间(文件目录树)。
  • 管理数据块(Block)映射信息。
  • 配置副本策略。
  • 处理客户端读写请求。

工作机制:
(1)第一次启动 NameNode 格式化后,创建 fsimage 和 edits 文件。如果不 是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求。
(3)NameNode 记录操作日志,更新滚动日志。
(4)NameNode 在内存中对数据进行增删改查。

3、DataNode

数据节点,保存和检索文件块,执行数据读写操作

工作机制:
(1)一个数据块在 DataNode 上以文件形式存储在对应服务器的磁盘上,包括两 个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和, 以及时间戳。
(2) DataNode 启动后向 NameNode 注册,通过后,周期性(1 小时)的向 NameNode 上报所有的块信息。
(3)心跳是每 3 秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令如复 制块数据到另一台机器,或删除某个数据块。如果超过 10 分钟没有收到某个 DataNode 的心跳,则认为该节点不可用

4、SecondaryNameNode

合并edit_log到fsimage中,辅助NameNode完成内存中元数据的持久化

工作机制:
(1)Secondary NameNode 询问 NameNode 是否需要 checkpoint。直接带回 NameNode 是否检查结果。
(2)Secondary NameNode 请求执行 checkpoint。
(3)NameNode 滚动正在写的 edits 日志。
(4)将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode。
(5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件 fsimage.chkpoint。
(7)拷贝 fsimage.chkpoint 到 NameNode。
(8)NameNode 将 fsimage.chkpoint 重新命名成 fsimage。

四、hadoop环境搭建主要流程

1、检查防火墙的状态,若开启,则关闭

2、虚拟机免密登陆设置

3、检查jdk是否安装,若没有,则安装

4、解压文件至指定目录

5、配置环境变量(bin/sbin)并激活

6、配置hdfs(etc/hadoop)
hadoop-env.sh
core-site.xml
hdfs-site.xml

7、格式化namenode
创建tmp/name tmp/data
执行hdfs namenode -format

8、配置yarn
yarn-site.xml
mapred-site.xml

9、配置完成,启动服务
start-dfs.sh
start-yarn.sh

四、HDFS常用命令

HDFS所有命令均以hdfs dfs -作为开头,与虚拟机下的命令区分开
1、上传文件:
hdfs dfs -put /本地路径 /hdfs路径
hdfs dfs -copyFromLocal /本地路径 /hdfs路径
2、下载文件:
hdfs dfs -get /hdfs路径 /本地路径
hdfs dfs -copyToLocal /hdfs路径 /本地路径
3、查看目录下内容:
hdfs dfs -ls [-R] /
其他的如mkdir chmod rm cat等常用操作均和虚拟机下的命令一样

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页