Aliyun Object Storage Service

Aliyun Object Storage Service (OSS)

이 페이지는 Aliyun OSS(Aliyun Object Storage Service)를 Flink와 함께 사용하는 방법을 설명해요. OSS는 중국 클라우드 사용자들 사이에서 특히 인기 있는 클라우드 객체 스토리지 서비스로, 다양한 사용 사례를 위한 객체 스토리지를 제공해요.

출처: 문서

본문

OSS: Object Storage Service

Aliyun OSS를 Aliyun OSS에서 제공하는 서비스로, Flink와 함께 데이터를 읽고 쓰거나 스트리밍 상태 백엔드(streaming state backends)와 함께 사용할 수 있어요.

OSS 객체는 다음 형식으로 경로를 지정하면 일반 파일처럼 사용할 수 있어요.

oss://<your-bucket>/<object-name>

다음은 Flink job에서 OSS를 사용하는 방법을 보여줘요.

// Read from OSS bucket
FileSource<String> fileSource = FileSource.forRecordStreamFormat(
        new TextLineInputFormat(),
        new Path("oss://<your-bucket>/<object-name>")
    ).build();
env.fromSource(
    fileSource,
    WatermarkStrategy.noWatermarks(),
    "oss-input"
);

// Write to OSS bucket
stream.sinkTo(
    FileSink.forRowFormat(
        new Path("oss://<your-bucket>/<object-name>"), 
        new SimpleStringEncoder<>()
    ).build()
);

// Use OSS as checkpoint storage
Configuration config = new Configuration();
config.set(CheckpointingOptions.CHECKPOINT_STORAGE, "filesystem");
config.set(CheckpointingOptions.CHECKPOINTS_DIRECTORY, "oss://<your-bucket>/<object-name>");
env.configure(config);

Shaded Hadoop OSS 파일 시스템

flink-oss-fs-hadoop를 사용하려면, Flink 시작 전에 opt 디렉터리에서 해당 JAR 파일을 Flink 배포의 plugins 디렉터리 안의 폴더로 복사하세요. 예를 들어,

mkdir ./plugins/oss-fs-hadoop
cp ./opt/flink-oss-fs-hadoop-2.3.0.jar ./plugins/oss-fs-hadoop/

flink-oss-fs-hadooposs:// 스킴을 가진 URI에 대한 기본 FileSystem 래퍼를 등록해요.

구성 설정 (Configurations setup)

OSS FileSystem 래퍼를 설정한 뒤에는, Flink가 여러분의 OSS 버킷에 접근할 수 있도록 몇 가지 구성을 추가해야 해요. 쉽게 적용할 수 있도록, Flink 구성 파일에서 Hadoop의 core-site.xml과 같은 구성 키를 사용할 수 있어요. 구성 키는 Hadoop OSS 문서에서 확인할 수 있어요.

fs.oss.endpoint: Aliyun OSS endpoint to connect to
fs.oss.accessKeyId: Aliyun access key ID
fs.oss.accessKeySecret: Aliyun access key secret

자격 증명(credentials)을 제공하는 다른 방법으로는 여기에서 다양한 자격 증명 제공자를 확인할 수 있어요.

# Read Credentials from OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET
fs.oss.credentials.provider: com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider

더 알아보기 (Learn more)