配置项设置
配置项设置
可以通过设置受支持的系统配置参数来配置Alluxio。了解用户如何定制应用程序
配置应用
自定义应用程序作业如何与Alluxio服务交互是面向不同应用程序的。这里我们为一些常见的应用程序提供建议。
Alluxio Shell 命令
在fs
命令和子命令之前(例如,copyFromLocal
),可以将JVM系统属性 -Dproperty=value
放入到命令行中,以指定引用属性。例如,下面的Alluxio shell命令在将文件复制到Alluxio时将写入类型设置为CACHE_THROUGH
:
Spark 作业
Spark用户可以通过对Spark executor的spark.executor.extraJavaOptions
和Spark drivers的spark.driver.extraJavaOptions
添加"-Dproperty=value"
向Spark job传递JVM环境参数。例如,当提交Spark jobs时设置向Alluxio写入方式为CACHE_THROUGH
在Spark shell中可以这样实现:
Hadoop MapReduce 作业
Hadoop MapReduce用户可以在hadoop jar
或"yarn jar
命令后添加"-Dproperty=value"
。 属性将被传播到这个作业的所有任务中。例如,下面的 MapReduce任务中设置wordcount集写入Alluxio类型为CACHE_THROUGH
:
配置Alluxio集群
使用 Site-Property 文件 (推荐)
Alluxio管理员可以创建和定制属性文件alluxio-site.properties
来配置一个Alluxio集群。 如果该文件不存在,可以从模板文件${ALLUXIO_HOME}/conf
:中创建:
确保在启动集群之前该文件上被分发到每个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
客户端仍然可以忽略或覆盖集群范围内的默认值,通过指定属性alluxio.user.conf.cluster.default.enabled=false
, 以更改加载集群范围内的默认值,或者遵循前面描述的方法为应用程序配置文件覆盖相同的属性。
注意到,在v1.8之前,
${ALLUXIO_HOME}/conf/alluxio-site.properties
属性的文件只被加载Alluxio服务器 进程,并将被应用程序通过Alluxio客户端与Alluxio服务交互所忽略, 除非${ALLUXIO_HOME}/conf
在应用程序的类路径中。
使用环境变量
Alluxio通过环境变量来支持一些常用的配置设置,包括:
环境变量 | 意义 |
---|---|
| Alluxio配置目录的路径. |
| Alluxio logs目录的路径. |
| Alluxio master的主机名,默认为localhost |
| 从1.1版本开始被 |
| 底层存储系统地址,默认为 |
| Alluxio worker保存in-memory数据的目录,默认为 |
| Alluxio Master、Worker以及Shell中的Java虚拟机配置选项,注意,默认情况下 |
| 对Master配置的额外Java虚拟机配置选项 |
| 对Worker配置的额外Java虚拟机配置选项 |
| 对Job Master配置的额外Java虚拟机配置选项 |
| 对Job Worker配置的额外Java虚拟机配置选项 |
| 对Alluxio Shell配置的额外Java虚拟机配置选项 |
| Alluxio进程的额外classpath入口. 默认为空 |
| log server的主机名.默认为空. |
| log server的端口名.默认为45600. |
| Alluxio log服务器存储从Alluxio服务器接收的log的本地目录路径. |
例如,如果你希望将Alluxio master运行在localhost
上,其底层存储系统HDFS的namenode也运行在localhost
上,并且在7001端口启用Java远程调试,可以使用:
用户可以通过shell命令或者conf/alluxio-env.sh
设置这些环境变量。如果该文件不存在,可以通过运行以下命令令Alluxio自动生成conf/alluxio-env.sh
文件:
配置资源
Alluxio属性可以在多个资源中配置。在这种情况下,它的最终值由列表中最早的资源配置决定:
参数配置文件. 当Alluxio集群启动时, 每一个Alluxio服务端进程(包括master和worke) 在目录
${HOME}/.alluxio/
,/etc/alluxio/
and${ALLUXIO_HOME}/conf
下顺序读取alluxio-site.properties
, 当alluxio-site.properties
文件被找到,将跳过剩余路径的查找.集群默认值. Alluxio客户端可以根据master节点提供的集群范围的默认配置初始化其配置。
如果没有为属性找到上面用户指定的配置,那么会回到它的默认参数值。
要检查特定配置属性的值及其值的来源,用户可以使用以下命令行:
列出所有配置属性的来源:
用户还可以指定--master
选项来通过master节点列出所有的集群默认配置属性 。注意,使用--master
选项 getConf
将查询master,因此需要主节点运行;没有--master
选项,此命令只检查本地配置。
Last updated