认识一下 MRS 里的“中间人”Alluxio
本文分享自华为云社区《MRS:Alluxio的使用介绍》,作者: 剑指南天。
1. Alluxio 的简介
Alluxio 在 mrs 的数据处理生态中处于计算和存储之间,为上层 spark、presto、mapredue、hive 计算框架提供了数据抽象层,计算框架可以通过统一的客户端 api 和全局命名空间访问底层的存储系统,并切提供内存级的 I/O 吞吐率。
2. Alluxio 的架构
Alluxio Master 主要负责管理元数据,执行分布式元数据存储操作,Secondary master 用户 checkpoint 日志(journal)和容错
Alluxio Worker 负责存储块数据,每个 worker 管理自己存储的块的元信息,执行底层基于数据的存储操作
Client 是应用与 Alluxio 交互的工具
3. 阿鲁西奥的使用
3.1 统一的命名空间和统一的客户端 API
Alluxio 提供统一的命名空间,用作底层文件存储系统数据的缓存,在不同的 UFS 实现数据的有效管理。使用透明的挂载,将 Alluxio 的命名空间和 UFS 命名空间之间保持一致,通过 Alluxio 访问 UFS 中的数据和直接访问 UFS 的数据,结果是一致的。Alluxio 提供了客户端 API,可以通过 Alluxio 实现对不同 UFS 的访问
3.2 MRS Alluxio 配置底层存储系统
3.2.1 根挂载点类型
配置 HDFS 作为 Alluxio 的底层文件系统(开启 Kerberos 认证的安全集群不支持该功能)。登录 mrs manager 页面,进入 Alluxio 的“全部配置”页面。修改参数“alluxio.master.mount.table.root.ufs”的值为“hdfs://hacluster/XXX/”。然后保存配置,然后重启配置过期的服务。
配置 OBS 作为 Alluxio 的底层文件系统。首先给集群配置有 OBS OperateAccess 权限的委托,用于访问 obs。登录 mrs manager 页面,进入 Alluxio 的“全部配置”页面。修改参数“alluxio.master.mount.table.root.ufs”的值为“obs://<OBS_BUCKET>/<OBS_DIRECTORY>/”。然后保存配置,然后重启配置过期的服务。
根挂载只有一个,并且只能在启动服务前配置。
内嵌挂载点
内嵌挂载点可以在 Alluxio 根目录下的任何目录,可以在服务启动之后,通过客户端命令挂载,可以有多个挂载点。
MRS 集群创建后,默认的底层存储地址是 hdfs://hacluster/,即将 HDFS 的根目录映射到 Alluxio。首先给集群配置有 OBS OperateAccess 权限的委托,用于访问 obs。使用 Alluxio 客户端执行如下命令,将 OBS 容器内部的目录挂载到 Alluxio 的/obs 目录。
alluxio fs mount /obs obs://<OBS_BUCKET>/<OBS_DIRECTORY>/
3.3 通过数据应用访问 Alluxio(参考 https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_0760.html)
3.4 Alluxio web 访问
Mrs Alluxio 并没有在 manager 页面直接提供 Alluxio 的 web 访问链接。但是可以参照开源的方案,使用 http://{alluxio_master_active_ip}:19999 访问 web 页面。
3.4.1 如何确定哪个 master 节点是 active?
登录 manager 页面,打开 Alluxio 服务进入 master 实例查看或者使用客户端命令 aluxio fs leader 查看。
3.4.2 如何访问 Alluxio web 页面?
可以通过给该节点绑定弹性 ip 通过公网访问(注意:需要在安全组放开 19999 端口)。或者通过创建一个 windows ECS,打通该节点到这台 window ECS 的网络,然后通过私有 ip 访问。
3.5 Alluxio 元数据的备份
3.6 Alluxio 的常用文件操作和管理员命令
3.6.1 常用文件操作
3.6.2 管理员命令
3.6.2.1 validateEnv 工具命令
检查本地环境是否存在导致 Alluxio 部署的问题
alluxio validateEnv master
alluxio validateEnv worker
alluxio validateEnv all
配置设置完整性检查
alluxio validateConf
3.6.2.2 文件系统管理功能
backup:备份 Alluxio 元数据,默认根挂载目录的/alluxio_backups 路径,也可以指定存储路径。
doctor:检查 master 和 worker 配置不一致的地方,需要在服务运行时运行。
getBlockInfo:需要提供 block 的 id,查询块的信息
report:生成一个 Alluxio 集群总体的健康状态
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/5e6e9135201e34eca3fff56cd】。文章转载请联系作者。
评论