Streamsets运行在国产化银河麒麟服务器
Streamsets的版本为3.16.0 离线版
国产化服务器:银河麒麟 ky10
国产化服务器架构:aarch64|arm64
国产化服务器操作系统类型:加密版和非加密版
加密版:三员管理,root为阉割的用户权限,非最高权限用户,安装软件使用指定软件安装,且需要安全审计员审核。无法安装docker,也不能使用tar包方式部署。可将StreamSets打包为rpm包部署。
非加密版:可安装docker,打一个arm版本的StreamSets镜像部署。
StreamSets打包docker-arm版基础镜像
docker desktop:Current version: 4.30.0 (149282)
Docker Engine:v26.1.1
因为win10环境下无法直接打arm版的镜像,需开启buildx,开启方式自行查阅。
window下docker打包命令:
docker buildx build --network host --platform linux/arm64 --progress=plain -f .\Dockerfile -t sdc-arm:8-jdk-alpine --load .
Dockerfile:
ARG BASE_IMAGE_TAG=8u402-b06-jdk-focal
FROM eclipse-temurin:$BASE_IMAGE_TAG
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/' /etc/apt/sources.list
RUN apt-get update && \
apt-get -y install \
sudo \
apache2-utils \
curl \
krb5-user \
protobuf-compiler \
psmisc \
lsb-release \
iputils-ping \
traceroute
# Used for configuring DNS resolution priority
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
# We need to set up GMT as the default timezone to maintain compatibility
RUN ln -fs /usr/share/zoneinfo/GMT /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata
注意:本地运行时先拉取eclipse-temurin:8u402-b06-jdk-focal镜像。也可按需添加需要的组件。
根据需要打包为其他版本的镜像,如:amd64|i386:x86-64,armhf|arm,ppc64el|powerpc:common64
因为在打包过程中会根据架构类型,获取不同的jdk安装包:
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='241a72d6f0051de30c71e7ade95b34cd85a249c8e5925bcc7a95872bee81fd84'; BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u402-b06/OpenJDK8U-jdk_aarch64_linux_hotspot_8u402b06.tar.gz'; ;; amd64|i386:x86-64) ESUM='fcfd08abe39f18e719e391f2fc37b8ac1053075426d10efac4cbf8969e7aa55e'; BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u402-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u402b06.tar.gz'; ;; armhf|arm) ESUM='271f28c7b3592b201b7434292c21d923f520af8ff1c090b6849cb946e34a6bdb'; BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u402-b06/OpenJDK8U-jdk_arm_linux_hotspot_8u402b06.tar.gz'; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libatomic1; rm -rf /var/lib/apt/lists/*; ;; ppc64el|powerpc:common64) ESUM='64bc05cdffe827c84000177dca2eb4ff0a8ff0021889bb75abff3639d4f51838'; BINARY_URL='https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u402-b06/OpenJDK8U-jdk_ppc64le_linux_hotspot_8u402b06.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; # buildkit
打包rpm
StreamSets原生支持打包为rpm版本。
打包命令:
mvn clean package -Drelease -DskipTests
执行完毕之后会分别生成el6和el7两份rpm包。根据实际情况选择。