【问题标题】:How can I build and run Druid locally如何在本地构建和运行 Druid
【发布时间】:2020-08-06 17:12:26
【问题描述】:

我的环境如下。

  • MacBook Pro(13 英寸,2019 年,四个雷雳 3 端口)
  • 2.8 GHz 四核英特尔酷睿 i7
  • 16 GB 2133 MHz LPDDR3
  • 英特尔 Iris Plus 显卡 655 1536 MB
  • 码头工人:19.03.12
  • 德鲁伊: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

此外,我遵循了这个instruction 并运行了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...

加号结束

关于这个: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

【问题讨论】:

    标签: docker druid


    【解决方案1】:

    所以我在这里看到了一些东西:

    1. docker run apache/druid:0.19.0 意思是“一劳永逸”,如果你这里没有无限运行的服务,你的 docker 容器将在启动后不久关闭。 要在 docker 容器中进行交互,请使用“-it”命令启动它。 要让它在没有交互的情况下运行,请使用“-d”命令运行它以进行分离。 你可以在这里找到相关信息:https://docs.docker.com/engine/reference/run/

    2. 您必须检查启动命令。 你在运行命令之后写的东西是启动命令(在你的情况下是“版本”) - 这就像你在单词之后将它输入到正在运行的外壳中一样运行(只是“版本”)。 除此之外,如果您不添加启动命令,则默认 druid dockerfile 中可能会有启动命令。 您可以在 docker.hub 中查看所选镜像的 dockerfile,如下所示:

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

    你看,启动命令,在一个名为 ENTRYPOINT 的 dockerfile 中,是一个 shellscript:

    ENTRYPOINT ["/druid.sh"]
    

    所以在你的运行命令之后写“版本”会阻止 shell 命令运行——我们不应该那样做 :)

    【讨论】:

    • 感谢您的帮助!毕竟我想知道要输入什么...
    • 为此,我们现在必须提供更多信息,您想了解什么。我会说从 -it 参数开始有一个交互式泊坞窗,你可以玩德鲁伊......
    • 你的意思是我应该运行docker run -it apache/druid:0.19.0?我运行了它,但不知何故我得到了相同的结果。
    • 我查看了它,看起来 Druid 只是缺少配置文件 - 请参阅错误输出。但后来我偶然发现了这个:druid.apache.org/docs/latest/tutorials/docker.html,并且解释了如何在 docker compose 文件的示例中在 Docker 中设置 Druid,其中 druid 服务在给定的环境中被大量信息拆分 -文件。所以我认为你不能只下载单个 docker 文件并运行它,因为 Druid 需要完整的基础架构才能运行!
    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多