Как записывать и читать файлы в/из Hadoop HDFS с помощью Ruby?

Есть ли способ работать с HDFS Api с помощью Ruby? Насколько я понимаю, многоязычного файлового API нет, и единственный способ - использовать собственный Java Api. Я пытался использовать JRuby, но это решение нестабильно и не очень родное. Также я просмотрел HDFS Thrift Api, но он неполный, а также не имеет многих функций (например, запись в индексированные файлы).

Есть ли способ работать с HDFS с использованием Ruby помимо использования JRuby или Thrift Api?


person sha1dy    schedule 26.06.2010    source источник


Ответы (1)


В github есть два проекта, которые соответствуют тому, что вы просите. ruby-hdfs предоставляет собственные привязки C к HDFS для Ruby. ganapati взаимодействует с сервером Thrift.

Вы также можете выполнять системные вызовы непосредственно в оболочке файловой системы. Например:

cmd = "hadoop fs -mkdir #{hdfs_path}"
cmd += " 2> /dev/null"
system(cmd)
if $? == 0
  puts 'ok'
  exit(0)
else
  puts "Error: failed to create hdfs://#{hdfs_path}"
  exit(2)
end
person Ronen Botzer    schedule 24.01.2011