Module: Hdfs
- Includes:
- Java
- Defined in:
- lib/hdfs_jruby.rb,
lib/hdfs_jruby/file.rb,
lib/hdfs_jruby/version.rb
Defined Under Namespace
Classes: Configuration, File, FileSystem, FsPermission, Path
Constant Summary
collapse
- JAR_PATTERN_0_20 =
"hadoop-core-*.jar"
- HADOOP_HOME =
- VERSION =
"0.0.7"
Class Method Summary
collapse
-
._conv(stat) ⇒ Object
-
._path(path) ⇒ Object
-
.connectAsUser(user) ⇒ Object
-
.delete(path, r = false) ⇒ Object
-
.directory?(path) ⇒ Boolean
True: directory, false: file.
-
.exists?(path) ⇒ Boolean
-
.file?(path) ⇒ Boolean
True: file, false: directory.
-
.get(remote, local) ⇒ Object
get file or directory from hdfs.
-
.get_home_directory ⇒ Object
-
.get_working_directory ⇒ Object
-
.list(path, opts = {}) ⇒ Object
-
.ls(path) ⇒ Array
-
.mkdir(path) ⇒ Object
-
.move(src, dst) ⇒ Object
-
.put(local, remote) ⇒ Object
put file or directory to hdfs.
-
.set_owner(path, owner, group) ⇒ Object
-
.set_permission(path, perm) ⇒ Object
-
.set_working_directory(path) ⇒ Object
-
.size(path) ⇒ Integer
Class Method Details
._conv(stat) ⇒ Object
218
219
220
221
222
223
224
225
226
227
228
|
# File 'lib/hdfs_jruby.rb', line 218
def _conv(stat)
file_info = {}
file_info['path'] = stat.getPath.to_s
file_info['length'] = stat.getLen.to_i
file_info['modificationTime'] = stat.getModificationTime.to_i
file_info['owner'] = stat.getOwner.to_s
file_info['group'] = stat.getGroup.to_s
file_info['permission'] = stat.getPermission.toShort.to_i
file_info['type'] = !stat.isDir ? 'FILE': 'DIRECTORY'
return file_info
end
|
._path(path) ⇒ Object
211
212
213
214
215
216
|
# File 'lib/hdfs_jruby.rb', line 211
def _path(path)
if path.nil?
raise "path is nil"
end
Path.new(path)
end
|
.connectAsUser(user) ⇒ Object
50
51
52
53
54
|
# File 'lib/hdfs_jruby.rb', line 50
def connectAsUser(user)
uri = Hdfs::FileSystem.getDefaultUri(@conf)
@fs.close if ! @fs.nil?
@fs = Hdfs::FileSystem.get(uri, @conf, user)
end
|
.delete(path, r = false) ⇒ Object
128
129
130
|
# File 'lib/hdfs_jruby.rb', line 128
def delete(path, r=false)
@fs.delete(_path(path), r)
end
|
.directory?(path) ⇒ Boolean
Returns true: directory, false: file.
138
139
140
|
# File 'lib/hdfs_jruby.rb', line 138
def directory?(path)
@fs.isDirectory(_path(path))
end
|
.exists?(path) ⇒ Boolean
114
115
116
|
# File 'lib/hdfs_jruby.rb', line 114
def exists?(path)
@fs.exists(_path(path))
end
|
.file?(path) ⇒ Boolean
Returns true: file, false: directory.
133
134
135
|
# File 'lib/hdfs_jruby.rb', line 133
def file?(path)
@fs.isFile(_path(path))
end
|
.get(remote, local) ⇒ Object
get file or directory from hdfs
163
164
165
|
# File 'lib/hdfs_jruby.rb', line 163
def get(remote, local)
@fs.copyToLocalFile(Path.new(remote), Path.new(local))
end
|
.get_home_directory ⇒ Object
167
168
169
|
# File 'lib/hdfs_jruby.rb', line 167
def get_home_directory()
@fs.getHomeDirectory()
end
|
.get_working_directory ⇒ Object
171
172
173
|
# File 'lib/hdfs_jruby.rb', line 171
def get_working_directory()
@fs.getWorkingDirectory()
end
|
.list(path, opts = {}) ⇒ Object
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/hdfs_jruby.rb', line 89
def list(path, opts={})
use_glob = opts[:glob] ? true : false
p = _path(path)
list = nil
if use_glob
list = @fs.globStatus(p)
else
list = @fs.listStatus(p)
end
if ! block_given?
ret_list = []
list.each do | stat |
ret_list << _conv(stat)
end
return ret_list
else
list.each do | stat |
yield _conv(stat)
end
end
end
|
.ls(path) ⇒ Array
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/hdfs_jruby.rb', line 59
def ls(path)
p = _path(path)
list = @fs.globStatus(p)
return [] if list.nil?
ret_list = []
list.each do |stat|
if stat.isDir
sub_list = @fs.listStatus(stat.getPath)
next if sub_list.nil?
sub_list.each do | s |
if block_given?
yield _conv(s)
else
ret_list << _conv(s)
end
end
else
if block_given?
yield _conv(stat)
else
ret_list << _conv(stat)
end
end
end
ret_list if ! block_given?
end
|
.mkdir(path) ⇒ Object
149
150
151
|
# File 'lib/hdfs_jruby.rb', line 149
def mkdir(path)
@fs.mkdirs(_path(path))
end
|
.move(src, dst) ⇒ Object
120
121
122
|
# File 'lib/hdfs_jruby.rb', line 120
def move(src, dst)
@fs.rename(Path.new(src), Path.new(dst))
end
|
.put(local, remote) ⇒ Object
put file or directory to hdfs
156
157
158
|
# File 'lib/hdfs_jruby.rb', line 156
def put(local, remote)
@fs.copyFromLocalFile(Path.new(local), Path.new(remote))
end
|
.set_owner(path, owner, group) ⇒ Object
188
189
190
|
# File 'lib/hdfs_jruby.rb', line 188
def set_owner(path, owner, group)
@fs.setOwner(_path(path), owner, group)
end
|
.set_permission(path, perm) ⇒ Object
181
182
183
|
# File 'lib/hdfs_jruby.rb', line 181
def set_permission(path, perm)
@fs.setPermission(_path(path), org.apache.hadoop.fs.permission.FsPermission.new(perm))
end
|
.set_working_directory(path) ⇒ Object
175
176
177
|
# File 'lib/hdfs_jruby.rb', line 175
def set_working_directory(path)
@fs.setWorkingDirectory(_path())
end
|
.size(path) ⇒ Integer
143
144
145
|
# File 'lib/hdfs_jruby.rb', line 143
def size(path)
@fs.getFileStatus(_path(path)).getLen()
end
|