小编use*_*900的帖子

使用所有空手道依赖项创建测试 jar

我有以下项目结构。

  • 源代码/测试/Java

没有 src/main 文件夹。

以上 src/test/java 文件夹包含一些 scala 类以及一些 java 类。当我使用以下插件构建 jar 文件时

  • maven-jar-plugin :它生成测试 jar 文件,但该 jar 文件中不包含依赖项
  • maven-shade-plugin :这个插件生成没有tests后缀的jar文件,并在生成的jar中包含所有的依赖。

请建议

如何生成解压所有依赖项的“测试”jar。或者在这种情况下如何使用 src/test/java 文件夹下的所有类以及测试类所需的所有依赖项生成 jar 文件

java executable-jar maven-jar-plugin maven-shade-plugin karate

5
推荐指数
1
解决办法
465
查看次数

apache airflow 中的 Kubernetes Executor:Pod 立即被删除并出现错误

我正在将 apache airflow 与 KubernetesExecutor 一起使用。我正在 Minikube 中运行设置,该设置工作正常,这意味着每当 DAG 触发时,它都会为标签中的每个任务生成 pod,并在任务完成后删除 pod。

我在测试 Kubernetes env 中也有同样的情况,但是当我在那里触发 DAG 时,它会为 DAG 中的第一个任务创建 pod,并且该 pod 会立即从状态中删除,例如 ContainerCreating -> Running -> Completed -> Error -> Termination。Airflow UI 的该任务日志为空,因此无法检查导致问题的原因,并且其余相关任务会自动失败。

这是我正在使用的环境变量

AIRFLOW__CELERY__CELERY_CONCURRENCY:
1
AIRFLOW__CELERY__FLOWER_URL_PREFIX:
AIRFLOW__CELERY__WORKER_CONCURRENCY:
1
AIRFLOW__CODE__ENABLE_XCOM_PICKLING:
false
AIRFLOW__CORE__CATCHUP_BY_DEFAULT:
false
AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION:
false
AIRFLOW__CORE__DAGS_FOLDER:
/usr/local/airflow/dags
AIRFLOW__CORE__DONOT_PICKLE:
false
AIRFLOW__CORE__EXECUTOR:
KubernetesExecutor
AIRFLOW__CORE__EXPOSE_CONFIG:
true
AIRFLOW__KUBERNETES__DAGS_VOLUME_CLAIM:
airflow-dags
AIRFLOW__KUBERNETES__LOGS_VOLUME_CLAIM:
airflow-logs
AIRFLOW__KUBERNETES__NAMESPACE:
cap
AIRFLOW__KUBERNETES__WORKER_CONTAINER_REPOSITORY:
repo/airflow-latest
AIRFLOW__KUBERNETES__WORKER_CONTAINER_TAG:
latest
AIRFLOW__KUBERNETES__WORKER_PODS_CREATION_BATCH_SIZE:
9
AIRFLOW__WEBSERVER__BASE_URL:
http://localhost:8080
DO_WAIT_INITDB:
false
FERNET_KEY:
FLOWER_PORT:
5555
POSTGRES_DB:
airflow
POSTGRES_HOST:
airflow-postgresql
POSTGRES_PORT:
5432
REDIS_HOST: …
Run Code Online (Sandbox Code Playgroud)

kubernetes airflow

2
推荐指数
1
解决办法
5793
查看次数

ElasticSearch查询uuid字段

我想查询elasticsearch记录,其中一个字段包含字符串格式的uuid值。这是记录结构

{
"field1": "test 1",
"field2": "testing 1",
"field3": "c48718a5-d715-4fbd-8a53-40707c83b2ce.eb47d75e-6b2f-403c-9e56-f1569d5b40d0"
},
{
"field1": "test 2",
"field2": "testing 2",
"field3": "c48718a5-d715-4fbd-8a53-40707c83b2ce.eb47d75e-6b2f-403c-9e56-f1569d5b40d0.d0644d62-f079-46ee-ab98-30d8d16977c2"
}
Run Code Online (Sandbox Code Playgroud)

我的查询看起来像这样

{
   "query": {
       "query_string": {
           "query": "(field1:test) AND (field3:c48718a5-d715-4fbd-8a53-40707c83b2ce.eb47d75e-6b2f-403c-9e56-f1569d5b40d0)",
           "default_operator": "and"
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

这是 field3 的映射

"field3": {
           "type": "text",
           "fields": {
              "keyword": {
                 "type": "keyword",
                 "ignore_above": 256     
              }
            }
 }
Run Code Online (Sandbox Code Playgroud)

问题是当我运行此查询时,elasticsearch 正在发送两条记录。我只想获取第一条记录。这里,elasticsearch 匹配 field3 中提供的字符串,但我想要字段值等于给定值的记录。

请建议。谢谢。

java elasticsearch elasticsearch-5

1
推荐指数
1
解决办法
4908
查看次数