《CDP企业数据云平台从入门到实践》——CDP之数据储存(3) https://developer.aliyun.com/article/1226404?groupCode=ClouderaCDP
三、 数据保护
可以通过防止意外删除文件和备份 HDFS 元数据来确保数据保护。
1. 备份 HDFS 元数据
HDFS 元数据以树的形式表示 HDFS 目录和文件的结构和属性。您可以在不影响NameNode 可用性的情况下备份元数据。
2. 配置 HDFS 垃圾桶
Hadoop 垃圾桶功能有助于防止意外删除文件和目录。
当您删除 HDFS 中的文件时,该文件不会立即从 HDFS 中删除。删除的文件首先移动到该/user//.Trash/Current 目录,并保留其原始文件系统路径。在用户可配置的时间段(fs.trash.interval)之后,称为垃圾检查点的进程将 Current 目
录重命名为当前时间戳,即/user//.Trash/.检查点进程还会检查目录的其余部分.Trash 是否存在任何现有的时间戳目录,并将它们从 HDFS中永久删除。您只需将文件和目录移动到目录外的位置,即可恢复垃圾箱中的文件和.Trash 目录。
3. 使用 HDFS 快照进行数据保护
HDFS 快照使您能够捕获文件系统的时间点副本并保护您的重要数据免受用户或应用程序错误的影响。Cloudera 建议您拍摄文件系统上指定子树的快照。由于以下原因,使用快照来保护数据是有效的:
• 无论目录子树的大小和深度如何,快照创建都是即时的。
• 快照捕获指定子树的阻止列表和文件大小。快照不会在文件系统上创建额外的
块副本。
您可以使用命令行界面或 Cloudera Manager 来管理 HDFS 快照。
4. 防止无意中删除目录
您可以通过将特定目录标记为受保护来防止无意中删除 HDFS 集群中的重要数据。将目录标记为受保护可防止其递归删除。但是,这并不能防止优雅地删除目录下的文件。您可以通过将文件移至回收站来删除这些文件。
a) 转到 HDFS 服务。
b) 单击配置选项卡。
c) 按照指定为 core-site.xml 属性设置集群范围的高级配置片段(安全阀):
名称: fs.protected.directories
值:指定要标记为受保护的目录的逗号分隔列表;例如,/user、/data 等。
d) 输入 Reason for Change,然后单击 Save Changes 以保存属性更改。
e) 重启集群。
四、 下一代存储 Ozone
Apache Ozone 是一个针对大数据工作负载优化的可扩展、冗余和分布式对象存储。除了扩展到数十亿个不同大小的对象外,使用 Apache Spark、Apache YARN 和Apache Hive 等框架的应用程序无需任何修改即可在 Ozone 上原生运行。Ozone 原生支持 S3 API 并提供与 Hadoop 兼容的文件系统接口。Ozone 通常在 CDP 私有云基础部署中可用。
1. Ozone 架构
Ozone 可以与具有单一安全和治理策略的 HDFS 位于同一位置,以便于数据交换或迁移,还提供无缝的应用程序可移植性。Ozone 具有横向扩展架构,运营开销极小。Ozone 将命名空间和存储的管理分开,帮助它有效地扩展。Ozone Manager(OM)管理命名空间,而 Storage Container Manager(SCM)处理容器。所有存储在 OM SCM 和数据节点上的元数据都需要存储在 NVME 或 SSD 等低延迟设备中。
下图显示了构成 Ozone 基本架构的组件:
Ozone 管理器
Ozone Manager(OM)是一个高度可用的 Ozone 命名空间管理器。OM 管理卷、桶和密钥的元数据。OM 维护密钥与其对应的块 ID 之间的映射。当客户端应用程序请求密钥以执行读写操作时,OM 与 SCM 交互以获取与读写操作相关的块的信息,并将此信息提供给客户端。
OM 使用 Apache Ratis(Raft 协议)来复制 Ozone 管理器状态。当 RocksDB(嵌入式存储引擎)保留元数据或键空间时,将 Ratis 事务刷新到本地磁盘可确保 Ozone中的数据持久性。因此,需要在每个 OM 节点上使用 NVMe SSD 等低延迟本地存储设备以实现最大吞吐量。典型的 Ozone 部署具有三个 OM 节点以实现冗余。
数据节点
Ozone DataNodes 与 HDFS DataNodes 不同,将实际的用户数据存储在 Ozone 集群中。DataNodes 存储客户端写入的数据块。这些块的集合就是一个存储容器。客户端以块的固定大小块文件(4MB)的形式流式传输数据。块文件构成实际写入磁盘的内容。DataNode 以固定的时间间隔向 SCM 发送心跳。每次心跳时,DataNode都会发送容器报告。
DataNode 中的每个存储容器都有自己的 RocksDB 实例,用于存储块和单个块文件的元数据。每个 DataNode 都可以是一个或多个活动管道的一部分。A pipeline of DataNodes is actually a Ratis quorum with an elected leader and follower DataNodes accepting writes.来自客户端的读取直接进入 DataNode 而不是通过Ratis。DataNode上的SSD需要为活动管道保留Ratis日志并显着提高写入吞吐量。
存储容器管理器
存储容器管理器(SCM)是 Ozone 中的一项主服务。
存储容器是 Ozone 中的复制单元。与管理块级复制的 HDFS 不同,Ozone 管理称为存储容器的存储块集合的复制。容器的默认大小为 5 GB。SCM 管理 DataNode 管道和容器在管道上的放置。管道是基于复制因子的 DataNode 的集合。例如,给定默认复制因子 3,每个管道包含三个 DataNode。SCM 负责创建和管理发生块分配的 DataNode 的活动写入管道。
客户端直接在 DataNode 上写块打开容器,SCM 不直接在数据路径上。容器在关闭后是不可变的。SCM 使用 RocksDB 来持久化管道元数据和容器元数据。与 OM 管理的密钥空间相比,此元数据的大小要小得多。
SCM 是一个高度可用的组件,它使用 Apache Ratis。Cloudera 建议在 SCM 节点上为 Ratis 预写日志和 RocksDB 使用 SSD。
典型的 Ozone 部署具有三个 SCM 节点以实现冗余。SCM 服务实例可以与 OM 实例并置;因此,您可以为 SCM 和 OM 使用相同的主节点。
侦察服务器
Recon 是 Ozone 集群中的集中监控和管理服务,它提供有关由不同 Ozone 组件(如OM 和 SCM)维护的元数据的信息。Recon 拍摄 OM 和 SCM 元数据的快照,同时还从 Ozone DataNode 接收心跳。Recon 根据集群的繁忙程度以增量方式异步构建集群完整状态的离线副本。在更新OM 元数据的快照方面,Recon 通常会通过一些事务来跟踪 OM。Cloudera 建议使用 SSD 来维护快照信息,因为 SSD 将帮助 Recon 与 OM 保持更新。
Ozone 文件系统接口
Ozone 是一个多协议存储系统,支持以下接口:
• ofs:与 Hadoop 兼容的文件系统允许任何需要类似 HDFS 接口的应用程序无需更改即可与 Ozone 一起工作。Apache Spark、YARN 和 Hive 等框架无需任何更改即可对付 Ozone。
• s3:Amazon 的简单存储服务(S3)协议。您可以在不对 Ozone 进行任何修改的情况下使用 S3 客户端和基于 S3 SDK 的应用程序。
• o3fs:基于存储桶的 Hadoop 兼容文件系统接口。
• o3:可以从 Ozone shell 使用的对象存储接口。
S3 网关
S3 网关是一个无状态组件,它通过 HTTP 提供对 Ozone 的 REST 访问,并支持与AWS 兼容的 s3 API。S3 网关支持分段上传和加密区域。
此外,S3 网关将通过 HTTP 的 S3 API 调用转换为对其他 Ozone 组件的 rpc 调用。为了扩展您的 S3 访问,Cloudera 建议在支持直接服务器返回(DSR)的负载均衡器后面部署多个网关 haproxy,以便负载均衡器不在数据路径上。
《CDP企业数据云平台从入门到实践》——CDP之数据储存(5) https://developer.aliyun.com/article/1226385?groupCode=ClouderaCDP