Как я могу собрать и запустить Druid локально - PullRequest
0 голосов
/ 06 августа 2020

Моя среда ниже.

  • MacBook Pro (13 дюймов, 2019 г., четыре порта Thunderbolt 3)
  • 2,8 ГГц, четырехъядерный процессор Intel Core i7
  • 16 ГБ 2133 МГц LPDDR3
  • Intel Iris Plus Graphics 655 1536 МБ
  • Docker: 19.03.12
  • Druid: 0.19.0

Хотя я следовал официальным инструкциям, мне не удалось собрать или запустить Druid локально.

Об этом: https://github.com/apache/druid/tree/master/distribution/docker

Я набрал следующие команды.

git clone https://github.com/apache/druid.git
docker build -t apache/druid:tag -f distribution/docker/Dockerfile .

Однако программа никогда не продолжается.

Sending build context to Docker daemon  78.19MB
Step 1/18 : FROM maven:3-jdk-8-slim as builder
 ---> addee4586ff4
Step 2/18 : RUN export DEBIAN_FRONTEND=noninteractive     && apt-get -qq update     && apt-get -qq -y install --no-install-recommends python3 python3-yaml
 ---> Using cache
 ---> cdb74d0f6b3d
Step 3/18 : COPY . /src
 ---> 60d35cb6c0ce
Step 4/18 : WORKDIR /src
 ---> Running in 73dfa666a186
Removing intermediate container 73dfa666a186
 ---> 4839bf923b21
Step 5/18 : RUN mvn -B -ff -q dependency:go-offline       install       -Pdist,bundle-contrib-exts       -Pskip-static-checks,skip-tests       -Dmaven.javadoc.skip=true
 ---> Running in 1c9d4aa3d4e8

PLUS

Более того, я выполнил эту инструкцию и запустил docker-compose -f distribution/docker/docker-compose.yml up, но я потерпел неудачу и получил ошибка ниже.

coordinator      | 2020-08-06T08:41:24,295 WARN [Coordinator-Exec--0] org.apache.druid.server.coordinator.helper.DruidCoordinatorRuleRunner - Uh... I have no servers. Not assigning anything...

PLUS END

Об этом: https://hub.docker.com/r/apache/druid/tags

Я набрал следующие команды.

docker pull apache/druid:0.19.0
docker run apache/druid:0.19.0

Кажется, эта программа работает следующим образом.

2020-08-06T07:50:22+0000 startup service 
Setting 172.17.0.2= in /runtime.properties
cat: can't open '/jvm.config': No such file or directory
2020-08-06T07:50:24,024 INFO [main] org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 5.2.5.Final
2020-08-06T07:50:24,988 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-hdfs-storage], jars: jackson-annotations-2.10.2.jar, hadoop-mapreduce-client-common-2.8.5.jar, httpclient-4.5.10.jar, htrace-core4-4.0.1-incubating.jar, apacheds-kerberos-codec-2.0.0-M15.jar, jackson-mapper-asl-1.9.13.jar, commons-digester-1.8.jar, jetty-sslengine-6.1.26.jar, jackson-databind-2.10.2.jar, api-asn1-api-1.0.0-M20.jar, ion-java-1.0.2.jar, hadoop-mapreduce-client-shuffle-2.8.5.jar, asm-7.1.jar, jsp-api-2.1.jar, druid-hdfs-storage-0.19.0.jar, api-util-1.0.3.jar, json-smart-2.3.jar, jackson-core-2.10.2.jar, hadoop-client-2.8.5.jar, httpcore-4.4.11.jar, commons-collections-3.2.2.jar, hadoop-hdfs-client-2.8.5.jar, hadoop-annotations-2.8.5.jar, hadoop-auth-2.8.5.jar, xmlenc-0.52.jar, aws-java-sdk-s3-1.11.199.jar, commons-net-3.6.jar, nimbus-jose-jwt-4.41.1.jar, hadoop-common-2.8.5.jar, jackson-dataformat-cbor-2.10.2.jar, hadoop-yarn-server-common-2.8.5.jar, accessors-smart-1.2.jar, gson-2.2.4.jar, commons-configuration-1.6.jar, joda-time-2.10.5.jar, hadoop-aws-2.8.5.jar, aws-java-sdk-core-1.11.199.jar, commons-codec-1.13.jar, hadoop-mapreduce-client-app-2.8.5.jar, hadoop-yarn-api-2.8.5.jar, aws-java-sdk-kms-1.11.199.jar, jackson-core-asl-1.9.13.jar, curator-recipes-4.3.0.jar, hadoop-mapreduce-client-jobclient-2.8.5.jar, jcip-annotations-1.0-1.jar, jmespath-java-1.11.199.jar, hadoop-mapreduce-client-core-2.8.5.jar, commons-logging-1.1.1.jar, leveldbjni-all-1.8.jar, curator-framework-4.3.0.jar, hadoop-yarn-client-2.8.5.jar, apacheds-i18n-2.0.0-M15.jar
2020-08-06T07:50:25,004 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-kafka-indexing-service], jars: lz4-java-1.7.1.jar, kafka-clients-2.5.0.jar, druid-kafka-indexing-service-0.19.0.jar, zstd-jni-1.3.3-1.jar, snappy-java-1.1.7.3.jar
2020-08-06T07:50:25,006 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-datasketches], jars: druid-datasketches-0.19.0.jar, commons-math3-3.6.1.jar
usage: druid <command> [<args>]

The most commonly used druid commands are:
    help       Display help information
    index      Run indexing for druid
    internal   Processes that Druid runs "internally", you should rarely use these directly
    server     Run one of the Druid server types.
    tools      Various tools for working with Druid
    version    Returns Druid version information

See 'druid help <command>' for more information on a specific command.

Однако, даже если я добавлю аргумент типа version, это не сработает.

❯ docker run apache/druid:0.19.0 version
2020-08-06T07:51:30+0000 startup service version
Setting druid.host=172.17.0.2 in /runtime.properties
cat: can't open '/jvm.config': No such file or directory
2020-08-06T07:51:32,517 INFO [main] org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 5.2.5.Final
2020-08-06T07:51:33,503 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-hdfs-storage], jars: jackson-annotations-2.10.2.jar, hadoop-mapreduce-client-common-2.8.5.jar, httpclient-4.5.10.jar, htrace-core4-4.0.1-incubating.jar, apacheds-kerberos-codec-2.0.0-M15.jar, jackson-mapper-asl-1.9.13.jar, commons-digester-1.8.jar, jetty-sslengine-6.1.26.jar, jackson-databind-2.10.2.jar, api-asn1-api-1.0.0-M20.jar, ion-java-1.0.2.jar, hadoop-mapreduce-client-shuffle-2.8.5.jar, asm-7.1.jar, jsp-api-2.1.jar, druid-hdfs-storage-0.19.0.jar, api-util-1.0.3.jar, json-smart-2.3.jar, jackson-core-2.10.2.jar, hadoop-client-2.8.5.jar, httpcore-4.4.11.jar, commons-collections-3.2.2.jar, hadoop-hdfs-client-2.8.5.jar, hadoop-annotations-2.8.5.jar, hadoop-auth-2.8.5.jar, xmlenc-0.52.jar, aws-java-sdk-s3-1.11.199.jar, commons-net-3.6.jar, nimbus-jose-jwt-4.41.1.jar, hadoop-common-2.8.5.jar, jackson-dataformat-cbor-2.10.2.jar, hadoop-yarn-server-common-2.8.5.jar, accessors-smart-1.2.jar, gson-2.2.4.jar, commons-configuration-1.6.jar, joda-time-2.10.5.jar, hadoop-aws-2.8.5.jar, aws-java-sdk-core-1.11.199.jar, commons-codec-1.13.jar, hadoop-mapreduce-client-app-2.8.5.jar, hadoop-yarn-api-2.8.5.jar, aws-java-sdk-kms-1.11.199.jar, jackson-core-asl-1.9.13.jar, curator-recipes-4.3.0.jar, hadoop-mapreduce-client-jobclient-2.8.5.jar, jcip-annotations-1.0-1.jar, jmespath-java-1.11.199.jar, hadoop-mapreduce-client-core-2.8.5.jar, commons-logging-1.1.1.jar, leveldbjni-all-1.8.jar, curator-framework-4.3.0.jar, hadoop-yarn-client-2.8.5.jar, apacheds-i18n-2.0.0-M15.jar
2020-08-06T07:51:33,524 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-kafka-indexing-service], jars: lz4-java-1.7.1.jar, kafka-clients-2.5.0.jar, druid-kafka-indexing-service-0.19.0.jar, zstd-jni-1.3.3-1.jar, snappy-java-1.1.7.3.jar
2020-08-06T07:51:33,526 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-datasketches], jars: druid-datasketches-0.19.0.jar, commons-math3-3.6.1.jar
ERROR!!!!
Found unexpected parameters: [version]
===
usage: druid <command> [<args>]

The most commonly used druid commands are:
    help       Display help information
    index      Run indexing for druid
    internal   Processes that Druid runs "internally", you should rarely use these directly
    server     Run one of the Druid server types.
    tools      Various tools for working with Druid
    version    Returns Druid version information

See 'druid help <command>' for more information on a specific command

1 Ответ

1 голос
/ 06 августа 2020

Итак, я вижу здесь несколько вещей:

  1. docker запустить apache / druid: 0.19.0 означает «запустить и забыть», если у вас нет бесконечного запуска service здесь, ваш контейнер docker будет отключен вскоре после запуска. Для взаимодействия с контейнером docker запустите его с помощью команды «-it». Чтобы он работал без взаимодействия, запустите его с командой «-d» для отсоединения. Вы можете найти информацию об этом здесь: https://docs.docker.com/engine/reference/run/

  2. Вы должны проверить команду запуска. То, что вы написали после команды запуска, - это команда запуска (в вашем случае «версия») - она ​​запускается так, как если бы вы вводили ее в запущенную оболочку после слов (просто «версия»). Вдобавок к этому, если вы НЕ добавляете команду запуска, она может быть в файле докеров druid по умолчанию. Вы можете увидеть файл докеров выбранного образа по адресу docker .hub, как здесь:

https://hub.docker.com/layers/apache/druid/0.19.0/images/sha256-eb2a4852b4ad1d3ca86cbf4c9dc7ed9b73c767815f187eb238d2b80ca26dfd9a?context=explore

Здесь вы видите, команда запуска с файлом докера, который называется ENTRYPOINT, является сценарием оболочки:

ENTRYPOINT ["/druid.sh"]

Таким образом, запись «версии» после ваших команд запуска останавливает выполнение команды оболочки - мы не должны этого делать :)

...