一、支持版本与配置 URI
1. 服务组件支持版本:Alluxio2.8.0版本。
2. 产品版本:Hadoop3.x 标准版本 EMR-V3.4.0 版本。
3. 配置支持透明 URI。使用 Alluxio 透明 URI,需要配置新的 Hadoop 兼容文件系统客户端实现。只要将客户端配置为接收外部 URI,此新的 ShimFileSystem 就会替换现有的 FileSystem。Hadoop 兼容的计算框架–Hadoop FileSystem 接口定义了从 FileSystem 方案到 FileSystem 实现的映射。为了配置 ShimFileSystem,请确保 core-site.xml 中配置了以下配置项:
| 配置项 | 配置项值 |
| fs.cosn.impl | alluxio.hadoop.ShimFileSystem |
4. Alluxio 在兼容透明 URL Schema 时需要对其进行转换兼容,请确保 alluxio-site.properties 中配置了以下配置项:
| 配置项 | 配置项值 |
| alluxio.master.uri.translator.impl | alluxio.master.file.uritranslator.AutoMountUriTranslator |
| alluxio.user.shimfs.bypass.ufs.impl.list | fs.cosn.impl:org.apache.hadoop.fs.cosnative.NativeCosFileSystem |
二、mount
mount 命令可以说是 Alluxio 最有特色的命令之一。它类似于 Linux 里的 mount 命令—Linux 用户可以通过 Linux mount 把硬盘,SSD 等存储设备加载到这台 Linux 系统的本地文件系统中。而在 Alluxio 系统当中,mount 的概念进一步被扩展到了分布式系统一层:用户可以通过 Alluxio mount 把一个或多个其他的存储系统/云存储服务(例如 HDFS、COS 等), 挂载到 Alluxio 这个分布式文件系统当中去。从而运行在 Alluxio 上的分布式应用,例如 Spark、Presto 或者 MapReduce 等,不需要去适配甚至了解具体的数据访问协议和路径,而只需要知道数据对应在 Alluxio 文件系统的路径就已足够,从而极大的方便了应用的开发和维护。
三、EMR-Alluxio 默认使用 hdfs 作为根目录挂载点
在 EMR-Alluxio2.5.1+后,Alluxio 的 UFS 开始支持 COSN 协议,COS UFS 存在读写性能较差以及不稳定的问题,为了解决此类问题,社区贡献了 COSN UFS 底层文件系统。COS 和 COSN UFS 都是用于访问腾讯云对象存储,COSN 相对于 COS 做了深度优化,其读写性能较COS 成倍提升,同时带来了更好的稳定性,所以强烈推荐使用 COSN。COS UFS 将于 EMR-Alluxio2.6.0 版本后停止维护。
Mount COSN 示例:
alluxio fs mount –option fs.cosn.userinfo.secretId=xx \\ –option fs.cosn.userinfo.secretKey=xx \\ –option fs.cosn.bucket.region=ap-xx \\ –option fs.cosn.impl=org.apache.hadoop.fs.cosnative.NativeCosFileSystem \\ –option fs.AbstractFileSystem.cosn.impl=org.apache.hadoop.fs.CosN \\ –option fs.cosn.userinfo.appid=xx \\ /cosn cosn://COS_BUCKET/path
其中,–options 中配置 COS 的配置。
| 配置项名称 | 解释 |
| fs.cosn.userinfo.secretId | cos secret id |
| fs.cosn.userinfo.secretKey | cos secret key |
| fs.cosn.impl | 固定值:org.apache.hadoop.fs.CosFileSystem |
| fs.AbstractFileSystem.cosn.impl | 固定值:org.apache.hadoop.fs.CosN |
| fs.cosn.bucket.region cos region | 名称,例如 ap-beijing |
| fs.cosn.userinfo.appid | 用户主账号 AppID |
| COS_BUCKET COS BUCKET | 名称。只要名称,不要带 AppID 后缀 |