Webhdfs 输出插件编辑

  • 插件版本:v3.1.0
  • 发布日期:2023-10-03
  • 变更日志

有关其他版本,请参阅 版本化插件文档

获取帮助编辑

如果您对插件有任何疑问,请在 Discuss 论坛中发布主题。对于错误或功能请求,请在 Github 中打开问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵

描述编辑

此插件通过 webhdfs REST API 将 Logstash 事件发送到 HDFS 中的文件。

依赖项编辑

此插件不依赖于 hadoop 中的 jar 包,从而减少了配置和兼容性问题。它使用 Kazuki Ohta 和 TAGOMORI Satoshi 的 webhdfs gem (@see: https://github.com/kzk/webhdfs)。如果您使用压缩功能,则可选依赖项是 zlib 和 snappy gem。

操作说明编辑

如果您遇到类似以下错误

Max write retries reached. Exception: initialize: name or service not known {:level=>:error}

请确保您的 namenode 主机名在运行 Logstash 的主机上可解析。在创建/追加到文件时,webhdfs 有时会发送一个 307 TEMPORARY_REDIRECT,其中包含其运行的机器的 HOSTNAME

用法编辑

这是一个 Logstash 配置示例

input {
  ...
}
filter {
  ...
}
output {
  webhdfs {
    host => "127.0.0.1"                 # (required)
    port => 50070                       # (optional, default: 50070)
    path => "/user/logstash/dt=%{+YYYY-MM-dd}/logstash-%{+HH}.log"  # (required)
    user => "hue"                       # (required)
  }
}

Webhdfs 输出配置选项编辑

此插件支持以下配置选项,以及稍后介绍的 通用选项

另请参阅 通用选项,了解所有输出插件支持的选项列表。

 

compression编辑

  • 值可以是以下任何一个:nonesnappygzip
  • 默认值为 "none"

压缩输出。[nonesnappygzip] 之一

flush_size编辑

  • 值类型为 数字
  • 默认值为 500

如果事件计数超过此值,则将数据发送到 webhdfs,即使 store_interval_in_secs 未达到。

host编辑

  • 这是一个必需的设置。
  • 值类型为 字符串
  • 此设置没有默认值。

webhdfs/httpfs 连接的服务器名称。

idle_flush_time编辑

  • 值类型为 数字
  • 默认值为 1

以 x 秒的间隔将数据发送到 webhdfs。

kerberos_keytab编辑

  • 值类型为 字符串
  • 此设置没有默认值。

设置 kerberos 密钥表文件。请注意,要使用此功能,需要使用 gssapi 库。

open_timeout编辑

  • 值类型为 数字
  • 默认值为 30

WebHdfs 打开超时,默认值为 30 秒。

path编辑

  • 这是一个必需的设置。
  • 值类型为 字符串
  • 此设置没有默认值。

要写入的文件的路径。事件字段可以在这里使用,以及 joda 时间格式的日期字段,例如:/user/logstash/dt=%{+YYYY-MM-dd}/%{@source_host}-%{+HH}.log

port编辑

  • 值类型为 数字
  • 默认值为 50070

webhdfs/httpfs 连接的服务器端口。

read_timeout编辑

  • 值类型为 数字
  • 默认值为 30

WebHdfs 读取超时,默认值为 30 秒。

retry_interval编辑

  • 值类型为 数字
  • 默认值为 0.5

我们应该在重试之间等待多长时间。

retry_known_errors编辑

重试一些已知的 webhdfs 错误。这些错误可能是由于在追加到同一文件时发生竞争条件等造成的。

retry_times编辑

  • 值类型为 数字
  • 默认值为 5

我们应该重试多少次。如果超过了 retry_times,则会记录错误,并且事件将被丢弃。

single_file_per_thread编辑

避免在多个线程中追加到同一文件。这解决了多个 logstash 输出线程和 webhdfs 中锁定文件租约的一些问题。如果将此选项设置为 true,则需要在路径配置设置中使用 %{[@metadata][thread_id]}。

snappy_bufsize编辑

  • 值类型为 数字
  • 默认值为 32768

设置 snappy 块大小。仅在流格式下才需要。默认值为 32k。最大值为 65536 @see http://code.google.com/p/snappy/source/browse/trunk/framing_format.txt

snappy_format编辑

  • 值可以是以下任何一个:streamfile
  • 默认值为 "stream"

设置 snappy 格式。一个是 "stream",一个是 "file"。设置为 stream 以与 hive 兼容。

ssl_cert编辑

  • 值类型为 字符串
  • 此设置没有默认值。

设置 ssl 证书文件。

ssl_key编辑

  • 值类型为 字符串
  • 此设置没有默认值。

设置 ssl 密钥文件。

standby_host编辑

用于 ha hdfs 的备用 namenode。

standby_port编辑

  • 值类型为 数字
  • 默认值为 50070

用于 ha hdfs 的备用 namenode 端口。

use_httpfs编辑

如果设置为 true,则使用 httpfs 模式,否则使用 webhdfs。

use_kerberos_auth编辑

设置 kerberos 身份验证。

use_ssl_auth编辑

设置 ssl 身份验证。请注意,要使用此功能,需要使用 openssl 库。

useredit

  • 这是一个必需的设置。
  • 值类型为 字符串
  • 此设置没有默认值。

WebHDFS 的用户名。

通用选项edit

以下配置选项受所有输出插件支持

设置 输入类型 必需

enable_metric

布尔值

id

字符串

enable_metricedit

  • 值类型为 boolean
  • 默认值为 true

禁用或启用此特定插件实例的指标日志记录。默认情况下,我们会记录所有可以记录的指标,但您可以禁用特定插件的指标收集。

idedit

  • 值类型为 string
  • 此设置没有默认值。

在插件配置中添加一个唯一的 ID。如果没有指定 ID,Logstash 将生成一个。强烈建议在您的配置中设置此 ID。当您有两个或多个相同类型的插件时,这尤其有用。例如,如果您有两个 webhdfs 输出。在这种情况下,添加一个命名 ID 将有助于在使用监控 API 时监控 Logstash。

output {
  webhdfs {
    id => "my_plugin_id"
  }
}

id 字段中的变量替换仅支持环境变量,不支持使用来自秘密存储的值。