Alluxio
ProductsLanguageHome
  • Alluxio概览
  • 用户指南
    • 快速上手指南
    • 架构
    • FAQ
    • 作业服务器
    • 应用场景
  • 核心功能
    • 缓存
    • 统一命名空间
  • 部署 Alluxio
    • 在Kubernetes上部署Alluxio
    • 本地运行Alluxio
    • 在集群上独立运行Alluxio
    • 在Docker上运行Alluxio
    • 在具有HA的群集上部署Alluxio
    • 使用Docker部署AlluxioFuse加速深度学习训练(试验)
    • 基本要求
  • 云源生
    • Tencent EMR
  • 计算应用
    • Apache Spark
    • Presto
    • Spark on Kubernetes
    • Apache Flink
    • Apache Hadoop MapReduce
    • Presto on Iceberg (Experimental)
    • Trino
    • Apache Hive
    • 深度学习框架
    • Tensorflow
  • 底层存储系统
    • Alluxio集成Amazon AWS S3作为底层存储
    • Alluxio集成GCS作为底层存储
    • Alluxio集成Azure Blob Store作为底层存储
    • Azure Data Lake Storage Gen2
    • Azure 数据湖存储
    • Alluxio集成HDFS作为底层存储
    • Alluxio集成COS作为底层存储
    • Alluxio集成COSN作为底层存储
    • Alluxio集成Ceph Object Storage作为底层存储
    • Alluxio集成NFS作为底层存储
    • Alluxio集成Kodo作为底层存储
    • Alluxio集成Swift作为底层存储
    • Alluxio集成WEB作为底层存储
    • Alluxio集成Minio作为底层存储
    • 阿里云对象存储服务
    • Alluxio集成Ozone作为底层存储
    • Alluxio集成CephFS作为底层存储
  • 安全设置
    • 安全性
  • 运维指南
    • 配置项设置
    • 命令行接口
    • 管理员命令行接口
    • Web界面
    • 日志
    • 度量指标系统
    • 远程记录日志
  • 管理
    • 升级
    • 异常诊断与调试
  • APIs
    • Filesystem API
    • S3 Client
    • POSIX API
    • REST API
    • Python Client
    • 兼容Hadoop的Java
    • Go 客户端
  • 开发者资源
    • 编译Alluxio源代码
    • 开发指南
    • 代码规范
    • 如何开发单元测试
    • 文档规范
  • 参考
    • 配置项列表
    • List of Metrics
  • REST API
    • Master REST API
    • Worker REST API
    • Proxy REST API
    • Job REST API
  • Javadoc
Powered by GitBook
On this page
  • 初始安装步骤
  • 配置Alluxio
  • Swift对象存储选项
  • 使用Swift本地运行Alluxio
  • 运行功能测试
  • 运行功能测试
  • Swift访问控制
  1. 底层存储系统

Alluxio集成Swift作为底层存储

Last updated 6 months ago

该指南介绍如何配置Alluxio从而使其底层存储系统支持。

初始安装步骤

首先,本地要有Alluxio二进制包。你可以自己,或者

配置Alluxio

要使用底层存储系统,你需要编辑conf/alluxio-site.properties来配置Alluxio。如果该文件不存在,那就从模板创建一个配置文件。

$ cp conf/alluxio-site.properties.template conf/alluxio-site.properties

修改conf/alluxio-site.properties配置文件的内容包括:

alluxio.master.mount.table.root.ufs=swift://<container>/<folder>
fs.swift.user=<swift-user>
fs.swift.tenant=<swift-tenant>
fs.swift.password=<swift-user-password>
fs.swift.auth.url=<swift-auth-url>
fs.swift.auth.method=<swift-auth-model>

使用现有的Swift容器地址替换<container>/<folder>。<swift-use-public>的值为true或false。<swift-auth-model>的值为keystonev3、keystone、tempauth或swiftauth。

当采用任意一个keystone认证时,下面的参数可以有选择地设置:

fs.swift.region=<swift-preferred-region>

认证成功以后,Keystone会返回两个访问URL: 公开的 和 私有的。如果Alluxio用在公司内部网,并且Swift位于同样的网络中,那么建议设置<swift-use-public>的值为false。

Swift对象存储选项

使用Swift本地运行Alluxio

完成配置后,你可以启动一个Alluxio集群:

$ ./bin/alluxio format
$ ./bin/alluxio-start.sh local

接着,你可以运行一个简单的示例程序:

$ ./bin/alluxio runTests

运行成功后,访问你的Swift容器,其中应该包含了由Alluxio创建的文件和目录。在这个测试中,你应该会看到创建的文件名像下面这样:

<container>/<folder>/default_tests_files/Basic_CACHE_THROUGH

运行以下命令停止Alluxio:

$ ./bin/alluxio-stop.sh local

运行功能测试

$ mvn test -DtestSwiftContainerKey=swift://<container>

运行功能测试

以下命令可用于测试给定的Swift凭证是否有效。 开发人员还可以使用它对Swift endpoint运行功能测试,以验证Alluxio和Swift之间的合约。

$ ./bin/alluxio runUfsTests --path swift://<bucket> \
  -Dfs.swift.user=<SWIFT_USER> \
  -Dfs.swift.tenant=<SWIFT_TENANT> \
  -Dfs.swift.password=<SWIFT_PASSWORD> \
  -Dfs.swift.auth.url=<AUTH_URL> \
  -Dfs.swift.auth.method=<AUTH_METHOD> 

Swift访问控制

如果Alluxio的安全模式被启用,那么Alluxio会强制让访问控制继承自底层的对象存储。

在Alluxio中指定的Swift凭证(fs.swift.user, fs.swift.tenant and fs.swift.password) 代表了一个Swift用户。Swift服务的后端会检查访问容器的用户许可。 如果给定的Swift用户没有访问特定容器的正确的访问许可,将会抛出一个许可被拒绝的错误。 一旦Alluxio安全模式被启用,当元数据第一次加载到Alluxio命名空间时,Alluxio将会加载容器ACL到Alluxio许可中。

挂载点分享

如果你想分享一个Swift挂载点给其他在Alluxio命名空间里的用户,你可以启用alluxio.underfs.object.store.mount.shared.publicly。

改变许可

除此之外,对Alluxio目录和文件的chown/chgrp/chmod操作既不会传播到底层Swift容器,也不会传播到Swift对象。

使用Swift模块使得Alluxio能使用以及对象存储作为底层存储。若要使用Ceph,必须部署模块。

该命令应当会启动一个Alluxio master和一个Alluxio worker,可以在浏览器中访问查看master Web UI。

Swift API
编译Alluxio
下载二进制包
Ceph Object Storage
IBM SoftLayer
Rados Gateway
http://localhost:19999