fluent-plugin-webhdfs 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/README.md +12 -1
- data/fluent-plugin-webhdfs.gemspec +2 -1
- data/lib/fluent/plugin/out_webhdfs.rb +12 -7
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08f6f306b0cc2e49582bc066e03d3460c69fd245
|
4
|
+
data.tar.gz: deb9774da6e4d8da83a844603254e4e3a069d78d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6dc0afebf5e982bcdfa12ae746f17925e4ddc4889a8d0fa4087d3d4d866889f9b3879b75b02a03ebcd833ce39d3815e614da2fc19305e14163101e7d3236c9e6
|
7
|
+
data.tar.gz: ddd01525b9bc7536eed1a36055298cddee927b7a8be8b1feb5ac913e07766faad050d2ff8c2d2203a12ad4a1ec79e587893f7b03faf989b4cbf7c9a07ab7576c
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# fluent-plugin-webhdfs
|
2
2
|
|
3
|
-
Fluentd output plugin to write data into Hadoop HDFS over WebHDFS/HttpFs.
|
3
|
+
[Fluentd](http://fluentd.org/) output plugin to write data into Hadoop HDFS over WebHDFS/HttpFs.
|
4
4
|
|
5
5
|
WebHDFSOutput slices data by time (specified unit), and store these data as hdfs file of plain text. You can specify to:
|
6
6
|
|
@@ -26,6 +26,17 @@ To store data by time,tag,json (same with 'type file') over WebHDFS:
|
|
26
26
|
path /path/on/hdfs/access.log.%Y%m%d_%H.log
|
27
27
|
</match>
|
28
28
|
|
29
|
+
If you want JSON object only (without time or tag or both on header of lines), specify it by `output_include_time` or `output_include_tag` (default true):
|
30
|
+
|
31
|
+
<match access.**>
|
32
|
+
type webhdfs
|
33
|
+
host namenode.your.cluster.local
|
34
|
+
port 50070
|
35
|
+
path /path/on/hdfs/access.log.%Y%m%d_%H.log
|
36
|
+
output_include_time false
|
37
|
+
output_include_tag false
|
38
|
+
</match>
|
39
|
+
|
29
40
|
To specify namenode, `namenode` is also available:
|
30
41
|
|
31
42
|
<match access.**>
|
@@ -2,12 +2,13 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = "fluent-plugin-webhdfs"
|
5
|
-
gem.version = "0.2.
|
5
|
+
gem.version = "0.2.2"
|
6
6
|
gem.authors = ["TAGOMORI Satoshi"]
|
7
7
|
gem.email = ["tagomoris@gmail.com"]
|
8
8
|
gem.summary = %q{Fluentd plugin to write data on HDFS over WebHDFS, with flexible formatting}
|
9
9
|
gem.description = %q{For WebHDFS and HttpFs of Hadoop HDFS}
|
10
10
|
gem.homepage = "https://github.com/fluent/fluent-plugin-webhdfs"
|
11
|
+
gem.license = "APLv2"
|
11
12
|
|
12
13
|
gem.files = `git ls-files`.split($\)
|
13
14
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -50,6 +50,11 @@ class Fluent::WebHDFSOutput < Fluent::TimeSlicedOutput
|
|
50
50
|
require 'webhdfs'
|
51
51
|
end
|
52
52
|
|
53
|
+
# Define `log` method for v0.10.42 or earlier
|
54
|
+
unless method_defined?(:log)
|
55
|
+
define_method("log") { $log }
|
56
|
+
end
|
57
|
+
|
53
58
|
def configure(conf)
|
54
59
|
if conf['path']
|
55
60
|
if conf['path'].index('%S')
|
@@ -125,7 +130,7 @@ class Fluent::WebHDFSOutput < Fluent::TimeSlicedOutput
|
|
125
130
|
begin
|
126
131
|
client.list('/')
|
127
132
|
rescue => e
|
128
|
-
|
133
|
+
log.warn "webhdfs check request failed. (namenode: #{client.host}:#{client.port}, error: #{e.message})"
|
129
134
|
available = false
|
130
135
|
end
|
131
136
|
available
|
@@ -138,11 +143,11 @@ class Fluent::WebHDFSOutput < Fluent::TimeSlicedOutput
|
|
138
143
|
super
|
139
144
|
|
140
145
|
if namenode_available(@client)
|
141
|
-
|
146
|
+
log.info "webhdfs connection confirmed: #{@namenode_host}:#{@namenode_port}"
|
142
147
|
return
|
143
148
|
end
|
144
149
|
if @client_standby && namenode_available(@client_standby)
|
145
|
-
|
150
|
+
log.info "webhdfs connection confirmed: #{@standby_namenode_host}:#{@standby_namenode_port}"
|
146
151
|
return
|
147
152
|
end
|
148
153
|
|
@@ -166,7 +171,7 @@ class Fluent::WebHDFSOutput < Fluent::TimeSlicedOutput
|
|
166
171
|
def namenode_failover
|
167
172
|
if @standby_namenode
|
168
173
|
@client, @client_standby = @client_standby, @client
|
169
|
-
|
174
|
+
log.warn "Namenode failovered, now using #{@client.host}:#{@client.port}."
|
170
175
|
end
|
171
176
|
end
|
172
177
|
|
@@ -199,18 +204,18 @@ class Fluent::WebHDFSOutput < Fluent::TimeSlicedOutput
|
|
199
204
|
begin
|
200
205
|
send_data(hdfs_path, chunk.read)
|
201
206
|
rescue => e
|
202
|
-
|
207
|
+
log.warn "failed to communicate hdfs cluster, path: #{hdfs_path}"
|
203
208
|
|
204
209
|
raise e if !@client_standby || failovered
|
205
210
|
|
206
211
|
if is_standby_exception(e) && namenode_available(@client_standby)
|
207
|
-
|
212
|
+
log.warn "Seems the connected host status is not active (maybe due to failovers). Gonna try another namenode immediately."
|
208
213
|
namenode_failover
|
209
214
|
failovered = true
|
210
215
|
retry
|
211
216
|
end
|
212
217
|
if ((@error_history.size + 1) >= @failures_before_use_standby) && namenode_available(@client_standby)
|
213
|
-
|
218
|
+
log.warn "Too many failures. Try to use the standby namenode instead."
|
214
219
|
namenode_failover
|
215
220
|
failovered = true
|
216
221
|
retry
|
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-webhdfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: fluentd
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: fluent-mixin-plaintextformatter
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.2.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.2.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: fluent-mixin-config-placeholders
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.2.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.2.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: webhdfs
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 0.5.3
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.5.3
|
83
83
|
description: For WebHDFS and HttpFs of Hadoop HDFS
|
@@ -87,8 +87,8 @@ executables: []
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
-
- .gitignore
|
91
|
-
- .travis.yml
|
90
|
+
- ".gitignore"
|
91
|
+
- ".travis.yml"
|
92
92
|
- Gemfile
|
93
93
|
- LICENSE.txt
|
94
94
|
- README.md
|
@@ -98,7 +98,8 @@ files:
|
|
98
98
|
- test/helper.rb
|
99
99
|
- test/plugin/test_out_webhdfs.rb
|
100
100
|
homepage: https://github.com/fluent/fluent-plugin-webhdfs
|
101
|
-
licenses:
|
101
|
+
licenses:
|
102
|
+
- APLv2
|
102
103
|
metadata: {}
|
103
104
|
post_install_message:
|
104
105
|
rdoc_options: []
|
@@ -106,21 +107,20 @@ require_paths:
|
|
106
107
|
- lib
|
107
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
109
|
requirements:
|
109
|
-
- -
|
110
|
+
- - ">="
|
110
111
|
- !ruby/object:Gem::Version
|
111
112
|
version: '0'
|
112
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
114
|
requirements:
|
114
|
-
- -
|
115
|
+
- - ">="
|
115
116
|
- !ruby/object:Gem::Version
|
116
117
|
version: '0'
|
117
118
|
requirements: []
|
118
119
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.
|
120
|
+
rubygems_version: 2.2.2
|
120
121
|
signing_key:
|
121
122
|
specification_version: 4
|
122
123
|
summary: Fluentd plugin to write data on HDFS over WebHDFS, with flexible formatting
|
123
124
|
test_files:
|
124
125
|
- test/helper.rb
|
125
126
|
- test/plugin/test_out_webhdfs.rb
|
126
|
-
has_rdoc:
|