Webhdfs 输出插件

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

其他版本,请参见 版本化插件文档.

获取帮助

编辑

如有任何关于插件的问题,请在 Discuss 论坛中发帖提问。如发现错误或有功能需求,请在 Github 中提交 issue。如需查看 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}

请确保运行 Logstash 的主机可以解析 NameNode 的主机名。在创建/追加文件时,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"

压缩输出。取值范围为 [none, snappy, gzip]

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,则需要在 path 配置设置中使用 %{[@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 库才能使用此功能。

user

编辑
  • 这是必填设置。
  • 值类型为 字符串
  • 此设置没有默认值。

webhdfs 的用户名。

常用选项

编辑

所有输出插件都支持这些配置选项

设置 输入类型 必填

codec

codec

enable_metric

布尔值

id

字符串

codec

编辑
  • 值类型为 codec
  • 默认值为 "line"

用于输出数据的编解码器。输出编解码器是在数据离开输出之前对其进行编码的一种便捷方法,而无需在 Logstash 管道中使用单独的过滤器。

enable_metric

编辑

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

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

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

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

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