按照Configuring Presto部分部署带有连接器的Presto时,它需要*.properties
文件中的所有选项。
我想为环境变量注入一些配置选项,但不是全部。例如,在给定Hive connector的情况下,我想在环境变量上配置选项hive.s3.aws-access-key
和hive.s3.aws-secure-key
,以便避免将此类凭据转储到文件中。
<presto_home>/etc/catalog/hive.properties
保留为要注入的单个秘密文件。增强配置单元连接器配置文件,例如:
echo "hive.s3.aws-access-key=xxx" >> /etc/catalog/hive.properties
还有其他选择吗?例如$<presto_home>/bin/launcher run -Dhive.s3.aws-secure-key=xxxxxx
或HIVE_S3_AWS_SECURE_KEY=xxx $<presto_home>/bin/launcher run
更新:2018年7月27日:我花了时间在com.facebook.presto.hive.s3.PrestoS3FileSystem
的AwsCredentialProvider上,意识到我的问题不在支持范围内。原因是hive-hadoop2连接器中的S3身份验证仅支持3个选项:
hive.s3.aws-access-key
或hive.s3.endpoint
中明确指定,例如https://<access-key>:<secret-key>@s3.amazonaws.com
hive.config.resources
。但是,它要求提供者must provide a constructor具有2个参数(java.net.URI
和org.apache.hadoop.conf.Configuration
)。我从aws java sdk中找不到任何内容。结论是,我想要的场景可以通过编写自定义凭据提供程序来完成,或者它有点不安全(与从元数据服务获取凭据相比)。