配置项设置

Slack Docker Pulls GitHub edit source

本页面介绍Alluxio的配置项,并提供了在不同环境下的推荐配置。

Alluxio配置

Alluxio在运行时期会加载三种类型的配置源:

  1. 应用配置,这类配置是跟具体应用相关的,并且在每次运行一个应用(例如一个Spark作业)时都需要对其进行配置。
  2. 环境变量,这是用于设置基本属性从而管理Alluxio服务器以及运行Alluxio shell命令最简单快速的方式。注意,通过环境变量设置的配置项可能不会被应用加载。
  3. 属性文件,这是自定义Alluxio支持的配置属性最一般的方法,通过这些属性文件设置的配置项可以被Alluxio服务器以及应用加载。

加载配置属性值的优先级从高到低依次为:应用配置(如果有),环境变量,属性文件以及默认值。

应用配置

Alluxio shell用户可以通过在命令行中添加-Dkey=property来指定某一个Alluxio配置项,例如

bin/alluxio fs -Dalluxio.user.file.writetype.default=MUST_CACHE touch /foo

Spark用户可以在conf/spark-env.sh中将"-Dkey=property"添加到${SPARK_DAEMON_JAVA_OPTS}中,或者添加到spark.executor.extraJavaOptions(对于Spark executors)以及spark.driver.extraJavaOptions(对于Spark drivers)。

Hadoop MapReduce用户可以在hadoop jar命令中添加-Dkey=property将配置项传递给Alluxio:

hadoop jar -Dalluxio.user.file.writetype.default=MUST_CACHE foo.jar

注意,这类配置是跟具体应用相关的,并且在每次运行一个应用或者命令(例如一个Spark作业)时都需要对其进行配置。

环境变量

有许多常用的Alluxio配置项可以通过以下的环境变量进行配置:

环境变量意义
ALLUXIO_MASTER_HOSTNAME Alluxio master的主机名,默认为localhost
ALLUXIO_MASTER_ADDRESS 从1.1版本开始被ALLUXIO_MASTER_HOSTNAME替代,并将在2.0版本中移除
ALLUXIO_UNDERFS_ADDRESS 底层存储系统地址,默认为 ${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_OPTSALLUXIO_WORKER_JAVA_OPTSALLUXIO_USER_JAVA_OPTS中。
ALLUXIO_MASTER_JAVA_OPTS 对Master配置的额外Java虚拟机配置选项
ALLUXIO_WORKER_JAVA_OPTS 对Worker配置的额外Java虚拟机配置选项
ALLUXIO_USER_JAVA_OPTS 对Alluxio Shell配置的额外Java虚拟机配置选项
ALLUXIO_CLASSPATH Alluxio进程的额外classpath入口. 默认为空

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

export ALLUXIO_MASTER_HOSTNAME="localhost"
export ALLUXIO_UNDERFS_ADDRESS="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文件:

./bin/alluxio bootstrapConf <ALLUXIO_MASTER_HOSTNAME> [local|hdfs|s3|gcs|glusterfs|swift]

除此之外,还可以运行以下命令从我们提供的一个模板文件中生成它:

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

注意,conf/alluxio-env.sh是在你启动Alluxio系统或者运行Alluxio命令时被加载,而不是被应用加载。

属性文件

除了以上这些提供基本设置的环境变量之外,Alluxio还为用户提供了一种更一般的方式,即通过属性文件来自定义所有支持的配置项。对于每个Alluxio部署站点,Alluxio服务器以及应用客户端都可以通过alluxio-site.properties文件覆盖默认属性值。在启动时,Alluxio会检查是否存在属性配置文件,如果存在,便会加载这些文件,并覆盖默认的属性值。启动程序将依次在${HOME}/.alluxio//etc/alluxio/(可以通过更改alluxio.site.conf.dir的默认值进行自定义)以及运行Alluxio的Java虚拟机的classpath中搜索该属性文件。

举个例子,用户可以复制${ALLUXIO_HOME}/conf目录下的属性模板保存到${HOME}/.alluxio/目录下,并且根据用户需求来调整配置属性的值。

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

注意,一旦设置了,这些属性文件的配置项将在Alluxio服务器以及使用Alluxio客户端的作业中共享。

附录

所有Alluxio配置属性都属于以下六类之一: 共有配置项(由Master和Worker共享), Master配置项Worker配置项用户配置项集群管理配置项(用于在诸如Mesos和YARN的集群管理器上运行Alluxio) 以及安全性配置项(由Master,Worker和用户共享)。

共有配置项

共有配置项包含了不同组件共享的常量。

属性名默认值意义
alluxio.conf.dir ${alluxio.home}/conf 包含Alluxio配置文件的目录。
alluxio.debug false 设置为true后即可启用debug模式,会记录更多日志,且在Web UI中会显示更多信息。
alluxio.home /mnt/alluxio_default_home Alluxio安装目录。
alluxio.logs.dir ${alluxio.home}/logs 存放日志文件的路径。
alluxio.keyvalue.enabled false 是否开启键值对服务。
alluxio.keyvalue.partition.size.bytes.max 512MB 存储中的一个键值对分区的最大大小(单位:byte),该值应当不小于块大小(alluxio.user.block.size.bytes.default)。
alluxio.metrics.conf.file ${alluxio.conf.dir}/metrics.properties 度量系统配置文件路径,默认是`conf`文件夹下的`metrics.properties`文件。
alluxio.network.host.resolution.​timeout.ms 5000 Alluxio在启动Master和Worker过程中,需要确保它们在监听外部可达且可解析的主机名。如果没有显式指定主机名,Alluxio会自动尝试选择一个合适的主机名。该配置项指定用于判断一个候选主机名在网络上是否可达的最长等待时间。
alluxio.network.netty.heartbeat.​timeout.ms 30000 如果没有流量传入,服务器在关闭网络连接之前等待的总时间。
alluxio.network.thrift.frame.​size.bytes.max 16MB (实验属性) 设置在Thrift RPC通讯过程中,使用的最大容许帧包(Frame)限值.
alluxio.site.conf.dir ${user.home}/.alluxio/,/etc/alluxio/ 加载配置文件时默认的搜索路径
alluxio.test.mode false 设置在测试过程中是否启用某些特殊行为。
alluxio.underfs.address ${alluxio.work.dir}/underFSStorage Alluxio在底层文件系统中的文件夹。
alluxio.underfs.gcs.owner.id.to.username.mapping No default 可选配置项,指定一个预设的gcs拥有者ID到Alluxio用户名的静态映射,格式为“id1=user1;id2=user2”。谷歌云存储的ID可以在控制台地址https://console.cloud.google.com/storage/settings找到。请使用“Owners”选项。
alluxio.underfs.glusterfs.impl org.apache.hadoop.fs.glusterfs.​GlusterFileSystem 作为底层存储系统的glusterFS的实现类,其提供的接口与Hadoop兼容。
alluxio.underfs.glusterfs.mapred.​system.dir glusterfs:///mapred/system 可选配置项,指定GlusterFS下用于存储MapReduce中间数据的子文件夹。
alluxio.underfs.hdfs.configuration ${alluxio.conf.dir}/core-site.xml hdfs配置文件的位置。
alluxio.underfs.hdfs.impl org.apache.hadoop.hdfs.​DistributedFileSystem 作为底层存储系统的hdfs的实现类。
alluxio.underfs.hdfs.prefixes hdfs://,glusterfs:///,maprfs:/// 可选配置项,指定以哪些前缀开头的文件应该存放在Apache Hadoop底层文件系统。分隔符为任何空白符或者','。
alluxio.underfs.hdfs.remote false 底层存储系统的worker节点对于Alluxio worker节点来说是否是远程的。如果该值为true,那么Alluxio将不会尝试从底层存储系统获取locality相关信息,因为这种情况下不可能存在任何locality,这样做可以提高性能。默认值为false。
alluxio.underfs.listing.length 1000 底层文件系统在一次查询中可以列出的目录条目的最大数量。如果条目数量大于指定长度,则需要多次查询才能列出。
alluxio.underfs.object.store.service.threads 20 存储底层文件系统操作的并行对象在执行程序池中的线程数。
alluxio.underfs.object.store.mount.shared.publicly false 是否对所有Alluxio用户共享挂载的对象存储系统。 注意,该配置对HDFS或者本地文件系统没有任何影响。默认值是false。
alluxio.underfs.s3.owner.id.to.username.mapping No default 可选配置项,指定一个预设的s3规范ID到Alluxio用户名的静态映射,格式为“id1=user1;id2=user2”。AWS的s3规范ID可以在控制台地址https://console.aws.amazon.com/iam/home?#security_credential找到。请展开“Account Identifiers”选项卡,并参考“Canonical User ID”。
alluxio.underfs.s3.endpoint No default 可选配置项,在组织AWS服务请求的时候可以指定某个区域地址来降低数据延迟或者访问某些隔离在不同AWS Region的资源。 一个endpoint是某个服务的一个入口地址。举例,s3.cn-north-1.amazonaws.com.cn 就是一个北京区域的亚马逊S3服务的一个endpoing。
alluxio.underfs.s3.proxy.host No default 可选配置项,指定与S3通信的代理主机。
alluxio.underfs.s3.proxy.https.only true 如果使用代理与S3通信,该配置项指定是否使用https与该代理通信。
alluxio.underfs.s3.proxy.port No default 可选配置项,指定与S3通信的代理端口。
alluxio.underfs.s3.threads.max 40 与S3通信时使用的最大线程数目和最大并发连接数。包括数据上载以及元数据操作线程。该数目至少要等于最大管理线程与最大上传线程数目之和。默认值为40,即默认管理线程与默认上传线程池大小之和。
alluxio.underfs.s3.admin.threads.max 20 与S3通信时进行元数据操作所使用的最大线程数目,这些操作会并发且频繁执行,但不会花费太多时间。默认值为20。
alluxio.underfs.s3.upload.threads.max 20 进行多部分上传时上传数据到S3所使用的最大线程数目,这些操作会相对耗时,然而由于某些线程会引起错误,过多线程会导致带宽饥饿。默认值为2。
alluxio.underfs.s3.disable.dns.buckets false
alluxio.underfs.s3a.consistency.timeout.ms 60000 等待底层存储元数据一致所持续的最久时间。该配置仅用于本应该执行成功的Alluxio内部操作,但是由于最终一致性,可能现在并没有执行成功。默认值是60000毫秒(1分钟)。
alluxio.underfs.s3a.directory.suffix /
alluxio.underfs.s3a.request.timeout.ms 60000
alluxio.underfs.s3a.secure.http.enabled false 是否使用HTTPS协议与S3进行通信。默认值为false。
alluxio.underfs.s3a.server.side.encryption.enabled false 是否加密存储在S3中的数据。默认值为false。
alluxio.underfs.s3a.socket.timeout.ms 50000 与S3通信时socket超时的时间长度。默认值为50000。
alluxio.underfs.s3a.inherit_acl true
alluxio.web.resources ${alluxio.home}/core/server/common/src/main/webapp web应用资源路径。
alluxio.web.threads 1 web服务器的线程数目。
alluxio.work.dir ${alluxio.home}
alluxio.zookeeper.address No default ZooKeeper地址。
alluxio.zookeeper.election.path /election ZooKeeper的选举文件夹。
alluxio.zookeeper.enabled false 若为true,则使用zooKeeper启动master容错机制。
alluxio.zookeeper.leader.path /leader ZooKeeper的leader文件夹。
alluxio.zookeeper.leader.inquiry.retry 10 从ZooKeeper申请leader的最大请求次数。

Master配置项

Master配置项指定master节点的信息,例如地址和端口号。

属性名默认值意义
alluxio.master.bind.host 0.0.0.0 Alluxio master绑定的主机名。参考多宿主网络
alluxio.master.connection.timeout.ms 0 Alluxio master设置Thrift的超时时间(单位:毫秒),超过该时间关闭连接,默认值是0,表示无时间限制
alluxio.master.heartbeat.interval.ms 1000 Alluxio master心跳间隔(单位:毫秒)。
alluxio.master.hostname localhost Alluxio master主机名。
alluxio.master.file.async.persist.handler alluxio.master.file.async.DefaultAsyncPersistHandler 处理异步持久化请求的处理类。
alluxio.master.format.file_prefix "_format_" 当journal被格式化时,在joural文件夹下生成的文件的文件名前缀。当判断journal是否被格式化时master会查找文件名以该前缀开头的文件。
alluxio.master.journal.flush.batch.time.ms 5 等待批处理日志写入的时间(以毫秒为单位)。
alluxio.master.journal.flush.timeout.ms 300000 在放弃和关闭master之前保持重试日志写入的时间量(以毫秒为单位)。
alluxio.master.journal.folder ${alluxio.work.dir}/journal 存储master journal日志的路径。
alluxio.master.journal.formatter.class alluxio.master.journal.​ProtoBufJournalFormatter 序列化journal的类。
alluxio.master.journal.log.size.bytes.max 10MB 如果一个日志文件大小超过该值,会产生下一个文件。
alluxio.master.journal.tailer.​shutdown.quiet.wait.time.ms 5000 在备用master停止监听线程之前,在该配置项指定的时间(单位:毫秒)内不应对leader master的journal作任何更新。
alluxio.master.journal.tailer.sleep.time.ms 1000 指定当备用master无法检测到leader master journal的更新时,其睡眠时间(单位:毫秒)。
alluxio.master.lineage.checkpoint.interval.ms 600000 Alluxio checkpoint机制的时间间隔(单位:毫秒)。
alluxio.master.lineage.checkpoint.class alluxio.master.lineage.checkpoint.​CheckpointLatestScheduler 用于生成lineage文件的checkpoint策略的类名,默认的策略是将最新的完整的lineage作为检查点,即所有输出文件都完成了的lineage。
alluxio.master.lineage.recompute.interval.ms 600000 Alluxio执行重新计算任务的时间间隔(单位:毫秒),executor根据lineage扫描到所有丢失的文件,然后重新执行对应的计算任务。
alluxio.master.lineage.recompute.log.path ${alluxio.logs.dir}/recompute.log 执行重新计算任务时将日志的标准输出重定向到该配置项指定的路径。
alluxio.master.port 19998 Alluxio master的运行端口。
alluxio.master.retry 29 client尝试与master相连的最大重试次数。(注意:该配置项目前不推荐使用,建议使用`alluxio.user.rpc.retry.max.num.retry`替代该项)
alluxio.master.startup.consistency.check.enabled true 当Alluxio启动时是否检查与底层存储系统的一致性,在该检查过程中,Alluxio会进入只读模式。该检查默认开启。
alluxio.master.ttl.checker.interval.ms 3600000 清除过期ttl值的文件任务的时间间隔(单位:毫秒)。
alluxio.master.ufs.path.cache.capacity 100000
alluxio.master.ufs.path.cache.threads 64 线程池(可异步处理路径,用于缓存UFS路径)的最大容积。更多的线程数将减少异步缓存中的staleness数量,但可能会影响性能。 如果设置为0,缓存将被禁用,而alluxio.user.file.metadata.load.type = Once将表现为“Always”。
alluxio.master.web.bind.host 0.0.0.0 Alluxio master web UI绑定的主机名。参考多宿主网络
alluxio.master.web.hostname localhost 提供Alluxio Master web UI的主机名。
alluxio.master.web.port 19999 Alluxio web UI运行端口。
alluxio.master.whitelist / 以该配置中的前缀开头的路径是可缓存的,这些前缀用分号隔开。Alluxio在第一次读这些文件时会尝试缓存这些可缓存的文件。
alluxio.master.worker.threads.max 2048 Alluxio master能处理的最大RPC并发请求数目,该值用于配置master的Thrift线程池的最大线程数。
alluxio.master.worker.threads.min 512 Alluxio master用于处理RPC请求的最小线程数,该值用于配置master的Thrift线程池的最小线程数。
alluxio.master.worker.timeout.ms 300000 Alluxio master与worker之间响应的最大超时时间(单位:毫秒),超过该时间表明该worker失效。
alluxio.master.tieredstore.global.levels 3 系统中存储层的总数目。
alluxio.master.tieredstore.global.level0.alias MEM 整个系统中最高存储层的名称。
alluxio.master.tieredstore.global.level1.alias SSD 整个系统中第二存储层的名称。
alluxio.master.tieredstore.global.level2.alias HDD 整个系统中第三存储层的名称。
alluxio.master.keytab.file Alluxio master的Kerberos密钥表文件。
alluxio.master.principal Alluxio master的Kerberos主体。

Worker配置项

Worker配置项指定worker节点的信息,例如地址和端口号。

属性名默认值意义
alluxio.worker.allocator.class alluxio.worker.block.allocator.​MaxFreeAllocator worker在特定存储层上分配不同存储目录空间的策略,有效值包括:`alluxio.worker.block.allocator.MaxFreeAllocator`, `alluxio.worker.block.allocator.GreedyAllocator`, `alluxio.worker.block.allocator.RoundRobinAllocator`。
alluxio.worker.bind.host 0.0.0.0 Alluxio worker节点绑定的主机名,参考多宿主网络
alluxio.worker.block.heartbeat.interval.ms 1000 worker心跳时间间隔(单位:毫秒)。
alluxio.worker.block.heartbeat.timeout.ms 60000 worker心跳超时时间(单位:毫秒)。
alluxio.worker.block.threads.max 2048 worker能处理的最大RPC并发请求数目,该值用于配置worker的Thrift线程池的最大线程数。
alluxio.worker.block.threads.min 256 worker用于处理RPC请求的最小线程数,该值用于配置worker的Thrift线程池的最小线程数。
alluxio.worker.data.bind.host 0.0.0.0 运行Alluxio worker数据服务的主机名,参考多宿主网络
alluxio.worker.data.folder /alluxioworker/ 每个存储目录中的一个相对路径,该路径被Alluxio worker用作层次化存储中存放数据的文件夹。
alluxio.worker.data.port 29999 运行Alluxio worker数据服务的端口。
alluxio.worker.data.server.class alluxio.worker.netty.​NettyDataServer 选择运行worker的网络栈,可选值为:`alluxio.worker.netty.NettyDataServer`。
alluxio.worker.data.server.domain.socket.address domain socket 路径。如果设置,Alluxio worker 通过这个路径读写数据。
alluxio.worker.evictor.class alluxio.worker.block.​evictor.LRUEvictor 当某个存储层空间不足时,worker剔除块文件的策略。可选值包括`alluxio.worker.block.evictor.LRFUEvictor`、 `alluxio.worker.block.evictor.GreedyEvictor`、 `alluxio.worker.block.evictor.LRUEvictor`。
alluxio.worker.evictor.lrfu.attenuation.factor 2.0 在[2, INF)之间的一个衰减因子,用于控制LRFU策略行为。
alluxio.worker.evictor.lrfu.step.factor 0.25 在[0, 1]之间的一个因子,用于控制LRFU策略行为:较小值使LRFU更接近于LFU,较大值更接近于LRU。
alluxio.worker.file.persist.pool.size 64 在worker上用于异步存储ASYNC_THROUGH类型文件的线程池大小。每个线程会存储一个文件。
alluxio.worker.filesystem.heartbeat.interval.ms 1000 worker和文件系统master之间的心跳检测时间间隔(单位:毫秒)。
alluxio.worker.hostname localhost Alluxio worker的主机名。
alluxio.worker.memory.size 128 MB 每个worker节点的内存容量。
alluxio.worker.network.netty.boss.threads 1 收到新的请求时启用的线程数目。
alluxio.worker.network.netty.file.transfer MAPPED 当将文件返回给用户时,该配置项用于选择数据如何传输,有效值为`MAPPED` (使用java MappedByteBuffer)以及`TRANSFER` (使用Java FileChannel.transferTo)
alluxio.worker.network.netty.shutdown.quiet.period 2 沉默期时间长度(单位:秒)。当netty服务器正终止时,要确保在该时间段内不会产生RPC调用。如果出现了RPC调用,那么在该netty服务器终止时会该沉默期会重新开始。
alluxio.worker.network.netty.shutdown.timeout 15 等待netty服务器终止的最长时间(单位:秒)(忽略沉默期)。
alluxio.worker.network.netty.watermark.high 32768 在切换到不可写状态之前,写队列中可存放的最大字节数。
alluxio.worker.network.netty.watermark.low 8192 一旦写队列中的high watermark达到了,该队列在切换到可写状态之前必须刷新到该配置项指定的low watermark。
alluxio.worker.network.netty.worker.threads 0 处理请求的线程数目,0表示#cpuCores * 2
alluxio.worker.network.netty.block.reader.threads.max 128 处理读数据块的线程数目。
alluxio.worker.network.netty.block.writer.threads.max 128 处理写数据块的线程数目。
alluxio.worker.network.netty.file.writer.threads.max 128 处理往底层文件系统写文件的线程数目。
alluxio.worker.network.netty.rpc.threads.max 128 处理RPC的线程数目。
alluxio.worker.port 29998 Alluxio worker节点运行端口。
alluxio.worker.session.timeout.ms 60000 worker和client连接的超时时间(单位:毫秒),超时后表明该会话失效。
alluxio.worker.tieredstore.block.lock.readers 1000 一个Alluxio数据块锁最大允许的并行读数目。
alluxio.worker.tieredstore.block.locks 1000 一个Alluxio数据块worker的数据块锁数目。较大值会达到更好的锁粒度,但会使用更多空间。
alluxio.worker.tieredstore.levels 1 worker上的存储层数目。
alluxio.worker.tieredstore.level0.alias MEM 在worker上最高存储层的别名,该值一定要对应master配置项中全局存储层之一。禁止将全局继承结构中较低级别存储层的别名放在worker中较高级别,因此默认情况下,在任何worker上SSD都不能在MEM之前。
alluxio.worker.tieredstore.level0.dirs.path /mnt/ramdisk/ 顶层存储层在存储目录中的路径。注意对于MacoS该值应为`/Volumes/`。
alluxio.worker.tieredstore.level0.dirs.quota ${alluxio.worker.memory.size} 顶层存储层容量。
alluxio.worker.tieredstore.level0.watermark.high.ratio 0.95 在顶层存储层中的高水位比例 (取值为0到1之间)。
alluxio.worker.tieredstore.level0.watermark.low.ratio 0.7 在顶层存储层中的低水位比例 (取值为0到1之间)。
alluxio.worker.tieredstore.reserver.enabled false 是否启用层次化存储空间预留服务。
alluxio.worker.tieredstore.reserver.interval.ms 1000 空间预留服务运行的时间间隔(单位:毫秒),该服务为每个存储层预留一定比例的空间。
alluxio.worker.tieredstore.retry 3 worker在处理每个存储层block操作时的最大重试次数。
alluxio.worker.web.bind.host 0.0.0.0 Alluxio worker web服务绑定的主机名,参考See 多宿主网络
alluxio.worker.web.hostname localhost Alluxio worker web UI绑定的主机名。
alluxio.worker.web.port 30000 Alluxio worker web UI运行的端口号。
alluxio.worker.keytab.file Alluxio worker的Kerberos密钥对文件。
alluxio.worker.principal Alluxio worker的Kerberos主体。

用户配置项

用户配置项指定了文件系统访问的相关信息。

属性名默认值意义
alluxio.user.block.master.client.threads 10 数据块master client与数据块master通信使用的线程数目。
alluxio.user.block.worker.client.threads 10 数据块worker client向worker发送心跳的线程池大小,如果某些worker宕机会影响client与其他正常worker的通信,那就增大该值。
alluxio.user.block.remote.read.buffer.size.bytes 8 MB 从远程Alluxio worker读取数据时的缓冲区大小。它决定了一个Alluxio client和一个Alluxio worker之间Thrift connections的最大数量
alluxio.user.block.remote.reader.class alluxio.client.netty.​NettyRemoteBlockReader 选择运行client使用的网络栈,目前只支持`alluxio.client.netty.NettyRemoteBlockReader`(使用netty远程读取数据)。 这个设置已经不推荐使用,将在2.0.0版本中删除。
alluxio.user.block.remote.writer.class alluxio.client.netty.​NettyRemoteBlockWriter 选择运行写数据块的client使用的网络栈。 这个设置已经不推荐使用,将在2.0.0版本中删除。
alluxio.user.block.size.bytes.default 512MB Alluxio文件的默认大小。
alluxio.user.failed.space.request.limits 3 从文件系统请求空间的尝试次数。
alluxio.user.file.buffer.bytes 8MB 在文件系统中进行读写操作时使用的缓冲区大小。
alluxio.user.file.cache.partially.read.block true 当读取类型是 `CACHE` 或者 `CACHE_PROMOTE` 的时候, 如果设置这个变量为真, 没有完全读取的数据块也会被存到Alluxio内.
alluxio.user.file.delete.unchecked false
alluxio.user.file.master.client.threads 10 文件master client与文件master通信时使用的线程数目。
alluxio.user.file.metadata.load.type Once
alluxio.user.file.waitcompleted.poll.ms 1000 当使用waitCompleted机制时,查询文件完成状态的时间间隔。
alluxio.user.file.worker.client.threads 10 文件worker client从worker读取数据时使用的线程数目。
alluxio.user.file.write.location.policy.class alluxio.client.file.policy.LocalFirstPolicy 选择worker进行写文件数据块时的默认定位机制。
alluxio.user.file.write.avoid.eviction.policy.reserved.size.bytes 0MB 当用户选择LocalFirstAvoidEvictionPolicy作为写文件数据块的定位机制时,用户需要配置worker预留一些数据量来保证数据的存储,默认是0MB。
alluxio.user.file.readtype.default CACHE_PROMOTE 创建Alluxio文件时的默认读类型。可选值为`CACHE_PROMOTE` (如果数据已经在Alluxio存储内,将其移动到最高存储层,如果数据需要从底层存储进行读取,将其写到本地Alluxio的最高存储层)、`CACHE` (如果数据需要从底层存储进行读取,将其写到本地Alluxio的最高存储层), `NO_CACHE` (数据不与Alluxio交互,如果是从Alluxio中进行读取,将不会发生数据块迁移或者剔除)。
alluxio.user.file.writetype.default MUST_CACHE 创建Alluxio文件时的默认写类型。可选值为`MUST_CACHE` (数据仅仅存储在Alluxio中,并且必须存储在其中), `CACHE_THROUGH` (尽量缓冲数据,同时同步写入到底层文件系统), `THROUGH` (不缓冲数据,同步写入到底层文件系统)。
alluxio.user.file.write.tier.default 0 数据块写入的默认存储层。可选值为整型数值。非负值代表从高层到底层的存储层(0代表第一层存储层,1代表第二层存储层,以此类推)。如果给定值大于存储层数量,这个数字代表最底层的存储层。负值代表从底层到高层的存储层(-1代表最底层存储层,-2代表次底层存储层,以此类推)如果给定值的绝对值大于存储层数量,这个数字代表最高层存储层。
alluxio.user.heartbeat.interval.ms 1000 Alluxio worker的心跳时间间隔(单位:毫秒)。
alluxio.user.hostname determined by localhost lookup 给alluxio客户端使用的主机名。
alluxio.user.lineage.enabled false 是否启用lineage。
alluxio.user.lineage.master.client.threads 10 lineage master client与lineage master通信所使用的线程数目。
alluxio.user.network.netty.timeout.ms 30000 Netty client(用于数据块的读写操作)等待数据服务端回复的最长时间(单位:毫秒)。
alluxio.user.network.netty.writer.close.timeout.ms 300000 Netty 客户端关闭的最长时间(单位:毫秒)。
alluxio.user.network.netty.worker.threads 0 远程数据块worker client从远程数据块worker读取数据使用的线程数目。
alluxio.user.ufs.block.read.location.policy alluxio.client.file.policy.LocalFirstPolicy
alluxio.user.ufs.block.read.location.policy.deterministic.hash.shards 1
alluxio.user.ufs.block.read.concurrency.max 2147483647
alluxio.user.ufs.delegation.read.buffer.size.bytes 8MB 通过Alluxio worker从ufs读取数据时使用的缓存大小,每个读取操作至少会读取该数量的字节,除非已经到文件结束位置。
alluxio.user.ufs.delegation.write.buffer.size.bytes 2MB 通过Alluxio worker写入数据到ufs时使用的缓存大小,每个写入操作至少会写入该数量的字节,除非已经到文件结束位置。
alluxio.user.ufs.file.reader.class alluxio.client.netty.​NettyUnderFileSystemFileReader 选择通过worker的data server从底层文件系统读取数据的client所使用的网络栈。目前只支持 `alluxio.client.netty.NettyUnderFileSystemFileReader` (远程读取使用netty)
alluxio.user.ufs.file.writer.class alluxio.client.netty.​NettyUnderFileSystemFileWriter 选择通过worker的data server向底层文件系统写入数据的client所使用的网络栈。目前只支持 `alluxio.client.netty.NettyUnderFileSystemFileWriter` (远程读取使用netty)
alluxio.user.rpc.retry.base.sleep.ms 50 在遇到一些错误的时候,Alluxio客户端的RPC会基于指数级的延迟进行重试。这个配置决定了这个指数级重试的基数。
alluxio.user.rpc.retry.max.sleep.ms 5000 在遇到一些错误的时候,Alluxio客户端的RPC会基于指数级的延迟进行重试。这个配置决定了这个重试延迟的最大值。
alluxio.user.rpc.retry.max.num.retry 20 在遇到一些错误的时候,Alluxio客户端的RPC会基于指数级的延迟进行重试。这个配置决定了重试的最大次数。
alluxio.user.date.format.pattern MM-dd-yyyy HH:mm:ss:SSS 以指定的日期格式,在Cli命令和Web页面中显示日期。
alluxio.user.short.circuit.enabled true 是否允许用户绕过Alluxio读取数据。

集群管理配置项

如果使用诸如Mesos和YARN的集群管理器运行Alluxio,还有额外的配置项。

属性名默认值意义
alluxio.integration.master.resource.cpu 1 运行Tachon master所需要的cpu核数。
alluxio.integration.master.resource.mem 1024 MB 运行Alluxio master所需要的内存大小。
alluxio.integration.mesos.executor.dependency.path http://downloads.alluxio.org/downloads/files/${alluxio.version}/alluxio-${alluxio.version}-bin.tar.gz Mesos executor下载Alluxio依赖的URL。
alluxio.integration.mesos.jdk.path jdk1.7.0_79
alluxio.integration.mesos.jdk.url https://alluxio-mesos.s3.amazonaws.com/jdk-7u79-linux-x64.tar.gz
alluxio.integration.mesos.master.name AlluxioMaster Mesos运行Alluxio master的任务名称。
alluxio.integration.mesos.master.node.count 1 启动Alluxio master的进程数目。
alluxio.integration.mesos.principal alluxio Alluxio框架账户。
alluxio.integration.mesos.role * Alluxio框架在Mesos集群中的角色。
alluxio.integration.mesos.secret Alluxio框架密码。
alluxio.integration.mesos.user Mesos executor运行Alluxio worker使用的账户。
alluxio.integration.mesos.worker.name AlluxioWorker Mesos运行Alluxio worker的任务名称。
alluxio.integration.worker.resource.cpu 1 运行Tachon worker所需要的cpu核数。
alluxio.integration.worker.resource.mem 1024 MB 运行Alluxio worker所需要的内存大小,该部分内存不包含为层次化存储配置的内容。
alluxio.integration.yarn.workers.per.host.max 1

安全性配置项

安全性配置项指定了安全性相关的信息,如安全认证和文件权限。 安全认证相关的配置同时适用于master、worker和用户。 文件权限相关的配置只对master起作用。 更多安全性相关的信息详见安全性页面。

属性名默认值意义
alluxio.security.authentication.type SIMPLE 安全认证模式。目前支持三种模式:NOSASL、SIMPLE和CUSTOM。 默认为NOSASL,即不启用安全认证功能。
alluxio.security.authentication.socket.timeout.ms 600000 用户创建一个连接master的Thrift套接字的最大时长(以毫秒为单位)。
alluxio.security.authentication.custom.provider.class 当alluxio.security.authentication.type被设为CUSTOM时,实现安全认证功能的类。 该类必须实现'alluxio.security.authentication.AuthenticationProvider'接口。
alluxio.security.login.username 当alluxio.security.authentication.type被设为SIMPLE或CUSTOM时,用户应用使用此配置项 作为连接Alluxio的用户名。若未设置该项,则使用系统登录用户名。
alluxio.security.authorization.permission.enabled true 是否启用文件权限访问控制功能。
alluxio.security.authorization.permission.umask 022 创建文件和目录时的文件权限掩码。初始化的创建权限为777,目录和文件之间相差111。 因此,当默认文件权限掩码为022时,新建目录的权限为755,新建文件的权限为644。
alluxio.security.authorization.permission.supergroup supergroup Alluxio文件系统的超级用户组。所有该组下的用户拥有超级权限。
alluxio.security.group.mapping.class alluxio.security.group.provider.​ShellBasedUnixGroupsMapping 提供“用户-用户组”映射服务的实现类。Master可以通过该服务得到指定用户所在组的组成员。 该类必须实现'alluxio.security.group.GroupMappingService'接口。 默认的实现类通过执行'groups'命令得到指定用户所在组的组成员。

配置多宿主网络

Alluxio提供了一种使用多宿主网络的方式。如果你有多个NIC,并且想让Alluxio master监听所有的NIC,那么你可以将alluxio.master.bind.host设置为0.0.0.0,这样Alluxio client就可以通过任何一个NIC访问到master。其他以bind.host结尾的配置项也是类似的。