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 Shell 命令
  • Spark 作业
  • Hadoop MapReduce 作业
  • 配置Alluxio集群
  • 使用 Site-Property 文件 (推荐)
  • 使用集群默认
  • 使用环境变量
  • 配置资源
  1. 运维指南

配置项设置

Last updated 6 months ago

配置项设置

可以通过设置受支持的来配置Alluxio。了解用户如何定制应用程序

配置应用

自定义应用程序作业如何与Alluxio服务交互是面向不同应用程序的。这里我们为一些常见的应用程序提供建议。

Alluxio Shell 命令

在fs 命令和子命令之前(例如,copyFromLocal),可以将JVM系统属性 -Dproperty=value放入到命令行中,以指定引用属性。例如,下面的Alluxio shell命令在将文件复制到Alluxio时将写入类型设置为CACHE_THROUGH:

$ ./bin/alluxio fs -Dalluxio.user.file.writetype.default=CACHE_THROUGH \
copyFromLocal README.md /README.md

Spark 作业

Spark用户可以通过对Spark executor的spark.executor.extraJavaOptions和Spark drivers的spark.driver.extraJavaOptions 添加"-Dproperty=value"向Spark job传递JVM环境参数。例如,当提交Spark jobs时设置向Alluxio写入方式为CACHE_THROUGH

$ spark-submit \
--conf 'spark.driver.extraJavaOptions=-Dalluxio.user.file.writetype.default=CACHE_THROUGH' \
--conf 'spark.executor.extraJavaOptions=-Dalluxio.user.file.writetype.default=CACHE_THROUGH' \
...

在Spark shell中可以这样实现:

val conf = new SparkConf()
    .set("spark.driver.extraJavaOptions", "-Dalluxio.user.file.writetype.default=CACHE_THROUGH")
    .set("spark.executor.extraJavaOptions", "-Dalluxio.user.file.writetype.default=CACHE_THROUGH")
val sc = new SparkContext(conf)

Hadoop MapReduce 作业

Hadoop MapReduce用户可以在hadoop jar或"yarn jar命令后添加"-Dproperty=value"。 属性将被传播到这个作业的所有任务中。例如,下面的 MapReduce任务中设置wordcount集写入Alluxio类型为CACHE_THROUGH:

$ ./bin/hadoop jar libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount \
-Dalluxio.user.file.writetype.default=CACHE_THROUGH \
-libjars {{site.ALLUXIO_CLIENT_JAR_PATH}} \
<INPUT FILES> <OUTPUT DIRECTORY>

配置Alluxio集群

使用 Site-Property 文件 (推荐)

Alluxio管理员可以创建和定制属性文件alluxio-site.properties来配置一个Alluxio集群。 如果该文件不存在,可以从模板文件${ALLUXIO_HOME}/conf:中创建:

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

确保在启动集群之前该文件上被分发到每个Alluxio节点(master和worker)的${ALLUXIO_HOME}/conf 下

使用集群默认

从v1.8开始,每个Alluxio客户端都可以使用从master节点获取的集群范围的配置值初始化其配置。 具体来说,当不同的客户端应用程序(如Alluxio Shell命令、Spark作业或MapReduce作业)连接到一个Alluxio服务时, 它们将使用master节点提供的默认值初始化自己的Alluxio配置属性,这些默认值是基于master节点的${ALLUXIO_HOME}/conf/alluxio-site.properties属性文件。因此,集群管理员可以放置客户端设置(例如,alluxio.user.*)或网络传输设置(如alluxio.security.authentication.type)在master节点的${ALLUXIO_HOME}/conf/alluxio-site.properties。 它将被分布并成为集群范围内的默认值,用于新的Aluxio客户端。

例如,一个常见的Alluxio属性alluxio.user.file.writetype.default 是设置写方式为默认的 MUST_CACHE ,只写到Alluxio空间。在一个Alluxio集群中 如果首选的是数据持久性的部署,所有的作业都需要写到UFS和Alluxio,那么就可以使用Alluxio v1.8或更高版本的admin命令来简单地添加alluxio.user.file.writetype.default=CACHE_THROUGH 到master端${ALLUXIO_HOME}/conf/alluxio-site.properties。重新启动集群后,所有新的作业都将自动将属性alluxio.user.file.writetype.default设置为CACHE_THROUGH

注意到,在v1.8之前,${ALLUXIO_HOME}/conf/alluxio-site.properties属性的文件只被加载Alluxio服务器 进程,并将被应用程序通过Alluxio客户端与Alluxio服务交互所忽略, 除非${ALLUXIO_HOME}/conf在应用程序的类路径中。

使用环境变量

Alluxio通过环境变量来支持一些常用的配置设置,包括:

环境变量
意义

ALLUXIO_CONF_DIR

Alluxio配置目录的路径.

ALLUXIO_LOGS_DIR

Alluxio logs目录的路径.

ALLUXIO_MASTER_HOSTNAME

Alluxio master的主机名,默认为localhost

ALLUXIO_MASTER_ADDRESS

从1.1版本开始被ALLUXIO_MASTER_HOSTNAME替代,并将在2.0版本中移除

ALLUXIO_MASTER_MOUNT_TABLE_ROOT_UFS

底层存储系统地址,默认为 ${ALLUXIO_HOME}/underFSStorage,即本地文件系统

ALLUXIO_RAM_FOLDER

Alluxio worker保存in-memory数据的目录,默认为/mnt/ramdisk.

ALLUXIO_JAVA_OPTS

Alluxio Master、Worker以及Shell中的Java虚拟机配置选项,注意,默认情况下ALLUXIO_JAVA_OPTS将被包含在 ALLUXIO_MASTER_JAVA_OPTS, ALLUXIO_WORKER_JAVA_OPTS和 ALLUXIO_USER_JAVA_OPTS中。

ALLUXIO_MASTER_JAVA_OPTS

对Master配置的额外Java虚拟机配置选项

ALLUXIO_WORKER_JAVA_OPTS

对Worker配置的额外Java虚拟机配置选项

ALLUXIO_JOB_MASTER_JAVA_OPTS

对Job Master配置的额外Java虚拟机配置选项

ALLUXIO_JOB_WORKER_JAVA_OPTS

对Job Worker配置的额外Java虚拟机配置选项

ALLUXIO_USER_JAVA_OPTS

对Alluxio Shell配置的额外Java虚拟机配置选项

ALLUXIO_CLASSPATH

Alluxio进程的额外classpath入口. 默认为空

ALLUXIO_LOGSERVER_HOSTNAME

log server的主机名.默认为空.

ALLUXIO_LOGSERVER_PORT

log server的端口名.默认为45600.

ALLUXIO_LOGSERVER_LOGS_DIR

Alluxio log服务器存储从Alluxio服务器接收的log的本地目录路径.

例如,如果你希望将Alluxio master运行在localhost上,其底层存储系统HDFS的namenode也运行在localhost上,并且在7001端口启用Java远程调试,可以使用:

$ export ALLUXIO_MASTER_HOSTNAME="localhost"
$ export ALLUXIO_MASTER_MOUNT_TABLE_ROOT_UFS="hdfs://localhost:9000"
$ export ALLUXIO_MASTER_JAVA_OPTS="$ALLUXIO_JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y, suspend=n,address=7001"

用户可以通过shell命令或者conf/alluxio-env.sh设置这些环境变量。如果该文件不存在,可以通过运行以下命令令Alluxio自动生成conf/alluxio-env.sh文件:

$ cp conf/alluxio-env.sh.template conf/alluxio-env.sh

配置资源

Alluxio属性可以在多个资源中配置。在这种情况下,它的最终值由列表中最早的资源配置决定:

要检查特定配置属性的值及其值的来源,用户可以使用以下命令行:

$ ./bin/alluxio getConf alluxio.worker.rpc.port
29998
$ ./bin/alluxio getConf --source alluxio.worker.rpc.port
DEFAULT

列出所有配置属性的来源:

$ ./bin/alluxio getConf --source
alluxio.conf.dir=/Users/bob/alluxio/conf (SYSTEM_PROPERTY)
alluxio.debug=false (DEFAULT)
...

用户还可以指定--master选项来通过master节点列出所有的集群默认配置属性 。注意,使用--master选项 getConf将查询master,因此需要主节点运行;没有--master 选项,此命令只检查本地配置。

$ ./bin/alluxio getConf --master --source
alluxio.conf.dir=/Users/bob/alluxio/conf (SYSTEM_PROPERTY)
alluxio.debug=false (DEFAULT)
...

客户端仍然可以忽略或覆盖集群范围内的默认值,通过指定属性alluxio.user.conf.cluster.default.enabled=false, 以更改加载集群范围内的默认值,或者遵循前面描述的方法覆盖相同的属性。

. 当Alluxio集群启动时, 每一个Alluxio服务端进程(包括master和worke) 在目录${HOME}/.alluxio/, /etc/alluxio/ and ${ALLUXIO_HOME}/conf下顺序读取 alluxio-site.properties , 当 alluxio-site.properties 文件被找到,将跳过剩余路径的查找.

. Alluxio客户端可以根据master节点提供的集群范围的默认配置初始化其配置。

如果没有为属性找到上面用户指定的配置,那么会回到它的。

系统配置参数
JVM系统参数 (i.e., -Dproperty=key)
默认参数值
为应用程序配置文件
环境变量
参数配置文件
集群默认值