在 MinIO (MacOS) 中不能 PUT/GET 个对象
Cannot PUT/GET objects in MinIO (MacOS)
感谢阅读!
我们 运行 Presto 和 Minio 使用 docker-compose
:
minio:
image: minio/minio:RELEASE.2021-08-31T05-46-54Z
container_name: minio
ports:
- 9094:9000
- 9001:9001
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
MINIO_REGION: us-east-1
command: server /data --console-address ":9001"
mem_limit: 512m
presto:
image: ahanaio/prestodb-sandbox:0.250
container_name: presto
ports:
- 9095:8080
volumes:
- ./presto/minio.properties:/opt/presto-server/etc/catalog/minio.properties
- ./presto/create-table.sql:/opt/create-table.sql
- ./presto/sync-partitions.sql:/opt/sync-partitions.sql
mem_limit: 1024m
我们上传一堆数据到minio,然后创建子目录如下PrestoSQL:
use minio.default;
CREATE TABLE orders (
"name" array(varchar)
"year" int,
"month" tinyint,
"day" tinyint)
WITH (
format='JSON',
external_location='s3a://orders-local/json/',
partitioned_by=ARRAY['year', 'month', 'day']
);
执行 SQL 语句后,我们团队的开发人员在 orders-local
存储桶中看到不一致的结果。在某些情况下,存在 json
目录。在其他情况下,它不存在。
我们都是运行相同的docker容器。到目前为止,我们只在 一些 MacOS 实例上看到了问题,但并非全部。我们还排除了 OS 版本,因为我们在大苏尔和卡塔琳娜看到了成功和失败。
有没有人遇到过这种不一致的情况?
我们的环境变量正在被 ~/.aws
中的值覆盖
我们无法解决环境变量未被接受的原因,但我们知道这一行是罪魁祸首:
config.WithDefaultRegion(os.Getenv("STORAGE_REGION"))
我们通过 os.Getenv() 调用成功获得了正确的区域,但是配置仍然从我们的 $HOME/.aws/config 文件中提取值。
所以似乎 .aws/config
文件的存在优先于环境变量。
感谢阅读!
我们 运行 Presto 和 Minio 使用 docker-compose
:
minio:
image: minio/minio:RELEASE.2021-08-31T05-46-54Z
container_name: minio
ports:
- 9094:9000
- 9001:9001
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
MINIO_REGION: us-east-1
command: server /data --console-address ":9001"
mem_limit: 512m
presto:
image: ahanaio/prestodb-sandbox:0.250
container_name: presto
ports:
- 9095:8080
volumes:
- ./presto/minio.properties:/opt/presto-server/etc/catalog/minio.properties
- ./presto/create-table.sql:/opt/create-table.sql
- ./presto/sync-partitions.sql:/opt/sync-partitions.sql
mem_limit: 1024m
我们上传一堆数据到minio,然后创建子目录如下PrestoSQL:
use minio.default;
CREATE TABLE orders (
"name" array(varchar)
"year" int,
"month" tinyint,
"day" tinyint)
WITH (
format='JSON',
external_location='s3a://orders-local/json/',
partitioned_by=ARRAY['year', 'month', 'day']
);
执行 SQL 语句后,我们团队的开发人员在 orders-local
存储桶中看到不一致的结果。在某些情况下,存在 json
目录。在其他情况下,它不存在。
我们都是运行相同的docker容器。到目前为止,我们只在 一些 MacOS 实例上看到了问题,但并非全部。我们还排除了 OS 版本,因为我们在大苏尔和卡塔琳娜看到了成功和失败。
有没有人遇到过这种不一致的情况?
我们的环境变量正在被 ~/.aws
我们无法解决环境变量未被接受的原因,但我们知道这一行是罪魁祸首:
config.WithDefaultRegion(os.Getenv("STORAGE_REGION"))
我们通过 os.Getenv() 调用成功获得了正确的区域,但是配置仍然从我们的 $HOME/.aws/config 文件中提取值。
所以似乎 .aws/config
文件的存在优先于环境变量。