Apple Silicon용 Apache Druid용 arm64 컨테이너 빌드

Docker에 게시된 Apache Druid 컨테이너는 linux/amd64 전용 이미지입니다. Apple Silicon(M1 또는 M2 칩셋)에서 실행하면 속도가 느립니다.

다행스럽게도 바이너리 배포판과 기존docker.sh을 활용하여 자신만의 구축을 매우 쉽게 할 수 있습니다.

이 모든 것은 druid-m1 저장소의 Dockerfile 및 빌드 스크립트에서 사용할 수 있습니다. build.shDockerfile에서 다운로드할 버전을 기반으로 arm64 이미지를 빌드합니다.

Apple M1 Silicon에서 Apache Druid의 컨테이너 기반 배포linux/amd64를 시작하고 처리할 수 있게 되기까지 2분(1:58.58 - 64GB 메모리 및 32GB가 할당된 Apple M1 Max에서 테스트)이 걸립니다.linux/arm64 기반 Linux 이미지로 빌드된 이미지는 사용 가능하게 되는 데 18초(0:17.79)밖에 걸리지 않습니다.

arm64/v8 이미지만 있으면 됩니다. druid-m1 프로젝트를 다운로드하고 build.sh 스크립트를 실행하면 됩니다. 그것이 어떻게 구성되었는지에 대해 조금 알아야 할 것; 계속하십시오.

영상



이 이미지를 만드는 과정은 복잡하지 않습니다. 세 가지 주요 부분이 생성되었습니다.

OS 아키텍처



먼저 arm64/v8 이미지가 있는 컨테이너를 찾아 사용합니다. "openjdk:11-jre-slim"및 "busybox"모두 arm64/v8이 있습니다.
이미지.


소프트웨어 설치


Dockerfile는 Druid를 다운로드하여 설치하고 Apache Druid에서 유지 관리 중인 druid.sh를 다운로드하여 사용합니다.

ARG DRUID_VERSION=0.23.0
ADD https://dlcdn.apache.org/druid/${DRUID_VERSION}/apache-druid-${DRUID_VERSION}-bin.tar.gz /tmp
ADD https://raw.githubusercontent.com/apache/druid/${DRUID_VERSION}/distribution/docker/druid.sh /druid.sh


드루이드 확장



Druid 확장은 Druid에서 사용할 수 있는 작업pull-deps으로 추가됩니다. 이 빌드에는 kafka-emitter 확장이 포함되어 있지만 다른 확장은 쉽게 추가할 수 있습니다.

RUN \
    java -cp "/opt/druid/lib/*" \
        -Ddruid.extensions.directory="/opt/druid/extensions/" \
        -Ddruid.extensions.hadoopDependenciesDir="/opt/druid/hadoop-dependencies/" \
        org.apache.druid.cli.Main tools pull-deps --no-default-hadoop \
        -c "org.apache.druid.extensions.contrib:kafka-emitter"


왜 차이가 있습니까?



Apache Druid의 일부인 Dockerfile는 소프트웨어 구축에 관한 것입니다. 그러나 이것은 빌드가 릴리스된 후에 수행되기 때문에; 그 접근 방식은 바이너리가
다운로드가 가능합니다.

드루이드가 처음이신가요?



Druid를 처음 사용하고 무엇을 할 수 있는지 알고 싶다면 dev-local-demos 내의 druid-late 데모를 확인하십시오. dev-local에서 제공하는 컨테이너 기반 에코시스템을 활용합니다. 개별적으로 빌드된 .env 이미지를 가리키도록 druid 폴더 내의 arm64 파일을 업데이트하십시오.

연락하기



온라인 분석 처리 또는 이벤트 스트리밍에 대해 이야기하고 싶다면 contact us 하십시오.

좋은 웹페이지 즐겨찾기