认识一下MRS里的“中间人”Alluxio
摘要:Alluxio在mrs的数据处理生态中处于计算和存储之间,为上层spark、presto、mapredue、hive计算框架提供了数据抽象层,计算框架可以通过统一的客户端api和全局命名空间访问底层的存储系统,并切提供内存级的I/O吞吐率。
1. Alluxio的简介
Alluxio在mrs的数据处理生态中处于计算和存储之间,为上层spark、presto、mapredue、hive计算框架提供了数据抽象层,计算框架可以通过统一的客户端api和全局命名空间访问底层的存储系统,并切提供内存级的I/O吞吐率。
2. Alluxio的架构
![](https://pic1.zhimg.com/80/v2-b4db9364aaa29b2437832e10275e1750_720w.jpg)
Alluxio Master主要负责管理元数据,执行分布式存储元数据操作,Secondary master用户checkpoint日志(journal)和容错
![](https://pic1.zhimg.com/80/v2-74de057481ebf9ba115c6c238ef4e318_720w.jpg)
Alluxio Worker负责存储块数据,每个worker管理自己存储的块的元信息,执行底层基于数据的存储操作
![](https://pic4.zhimg.com/80/v2-0393ed2abc676a5c29cb30c2436b918f_720w.jpg)
Client是应用与Alluxio交互的工具
![](https://pic2.zhimg.com/80/v2-20c62e2a905460fbda4ab8a85b734b21_720w.jpg)
3. Alluxio的使用
3.1 统一的命名空间和统一的客户端API
Alluxio提供统一的命名空间,用作底层文件存储系统数据的缓存,在不同的UFS实现数据的有效管理。使用透明的挂载,将Alluxio的命名空间和UFS命名空间之间保持一致,通过Alluxio访问UFS中的数据和直接访问UFS的数据,结果是一致的。Alluxio提供了客户端API,可以通过Alluxio实现对不同UFS的访问
![](https://pic3.zhimg.com/80/v2-76dfd0beafe3b2e787d5079aa2dd1972_720w.jpg)
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查看。
![](https://pic2.zhimg.com/80/v2-33ad5313e4cb59e372f5b87c3a8bc055_720w.jpg)
![](https://pic2.zhimg.com/80/v2-11945b8ff617fcda9220457580c8fca9_720w.jpg)
3.4.2如何访问Alluxio web页面?
可以通过给该节点绑定弹性ip通过公网访问(注意:需要在安全组放开19999端口)。或者通过创建一个windows ECS,打通该节点到这台window ECS的网络,然后通过私有ip访问。
![](https://pic2.zhimg.com/80/v2-ef8fde297397f51f9daa472584227329_720w.jpg)
![](https://pic3.zhimg.com/80/v2-55c04a517ac10451d6f7beb33b4a9dc2_720w.jpg)
3.5 Alluxio元数据的备份
![](https://pic2.zhimg.com/80/v2-4c68203672d4ad5212333e0c4340d4cd_720w.jpg)
3.6 Alluxio的常用文件操作和管理员命令
3.6.1 常用文件操作
![](https://pic4.zhimg.com/80/v2-6d973a327b90415fe39aa347d6cc842f_720w.jpg)
3.6.2 管理员命令
3.6.2.1 validateEnv工具命令
检查本地环境是否存在导致Alluxio部署的问题
alluxio validateEnv master
alluxio validateEnv worker
alluxio validateEnv all
配置设置完整性检查
alluxio validateConf
3.6.2.2 文件系统管理功能
![](https://pic1.zhimg.com/80/v2-b34358eba0fc5e03db6d9083bc71af48_720w.jpg)
backup:备份Alluxio元数据,默认根挂载目录的/alluxio_backups路径,也可以指定存储路径。
doctor:检查master和worker配置不一致的地方,需要在服务运行时运行。
getBlockInfo:需要提供block的id,查询块的信息
report:生成一个Alluxio集群总体的健康状态
相关文章
- 论文解读丨无参数的注意力模块SimAm
- 华为云企业级Redis揭秘第15期:Redis为什么需要强一致?
- 带你了解AKG正反向算子注册+关联流程
- 软件开发除了23种设计模式,还有7个开发原则需要了解
- Sechunter移动应用隐私合规检测详解
- 数仓如何限制临时数据文件下盘量
- 关于HTTPS认证,这里解决你所有疑惑
- 分析师机构发布中国低代码平台现状分析报告,华为云AppCube为数字化转型加码
- 云小课 | SA基线检查—给云服务的一次全面“体检”
- 并发高?可能是编译优化引发有序性问题
- 不止承上启下,带你了解工业物联网关
- 面试只要问到分布式,必问分布式锁
- 你真的懂Redis的5种基本数据结构吗?
- 从原理带你掌握Spring MVC拦截处理器知识
- 论文解读二十七:文本行识别模型的再思考
- 论文解读丨LayoutLM: 面向文档理解的文本与版面预训练
- 教你用SQL进行数据分析
- 解密并发幕后黑手:线程切换引发的原子性问题
- 云网络的守护神:主动链路监控
- 云小课 | 网站接入WAF失败怎么办?看这里就够了