小明的網誌

一個工程師的故事

By

Build Open Distro for Elasticsearch SQL

想在 ES 裡直接打 SQL query, 找到 Open Distro for Elasticsearch SQL, 編好後, 才發現只能裝在 ES 7.10.2

但還是紀錄一下如何安裝, 超泡麵

OS: debian

docker: 19.03.1

假設 dockerremap: 10000:10000, 取得方式如下

echo "`grep dockremap /etc/subuid | awk -F: '{print 2}'`:`grep dockremap /etc/subgid | awk -F: '{print2}'`"

  1. 製作合適的 docker image, 取名: openjdk:15-buster-custom
  • 文件上提到 JDK >= 14, 但 14 版做不出來, 改用 15 版才能正常
  • elasticsearch 不能用 root 執行, 所以需要用 uid:gid = 5000:5000 (remap 15000:15000) 的 builder 執行之, 也因此要把 /tmp/sql 變成 15000:15000 才能正常寫入, 避免 permission denied
cd /tmp
git clone https://github.com/opendistro-for-elasticsearch/sql.git
chown -R 15000:15000 /tmp/sql
mv Dockerfile /tmp/sql # Dockerfile 如下
cd /tmp/sql
docker build -t openjdk:15-buster-custom .

  1. 自編 opendistro-sql-1.13.2.0.zip
cd /tmp/sql
docker run --user builder --rm -v "$PWD":/usr/src/myapp \
  -w /usr/src/myapp openjdk:15-buster-custom \
  /usr/src/myapp/gradlew build

  1. 取得 opendistro-sql-1.13.2.0.zip
cd /tmp/sql/plugin/build/distributions
ls -al opendistro-sql-1.13.2.0.zip

  1. 安裝
sudo elasticsearch-plugin install file:///PATH/opendistro-sql-1.13.2.0.zip

  1. Dockerfile 內容物, 下載
FROM openjdk:15-buster
RUN DEBIAN_FRONTEND=noninteractive apt update && \
    DEBIAN_FRONTEND=noninteractive apt -qy upgrade && \
    DEBIAN_FRONTEND=noninteractive apt install -qy python3.7 python3-distutils python3-apt && \
    groupadd -g 5000 builder && \
    useradd -u 5000 -g 5000 -d /usr/src/myapp -s /bin/bash builder

One Response to Build Open Distro for Elasticsearch SQL

  1. Pingback: 自編 elasticsearch-sql | 小明的網誌

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Verified by MonsterInsights