Webhdfs 输出插件

编辑

对于其他版本,请参阅版本化插件文档

获取帮助

编辑

有关插件的问题,请在Discuss论坛中打开一个主题。对于错误或功能请求,请在Github中打开一个问题。有关 Elastic 支持的插件列表,请参阅Elastic 支持矩阵

描述

编辑

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

依赖项

编辑

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

操作说明

编辑

如果您收到类似以下错误

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

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

用法

编辑

这是一个 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 keytab 文件。请注意,要使用此功能,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。强烈建议在配置中设置此 ID。当您有两个或多个相同类型的插件时,此功能特别有用。例如,如果您有 2 个 webhdfs 输出。在这种情况下添加命名的 ID 将有助于在使用监控 API 时监控 Logstash。

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

id 字段中的变量替换仅支持环境变量,不支持使用 secret store 中的值。