如何使用 Ruby 在 Hadoop HDFS 中写入和读取文件?

发布于 2024-09-07 16:55:39 字数 212 浏览 6 评论 0原文

有没有办法使用 Ruby 来使用 HDFS Api?据我了解,没有多语言文件 Api,唯一的方法是使用本机 Java Api。我尝试使用 JRuby,但这个解决方案不稳定并且不是很原生。我还查看了 HDFS Thrift Api,但它并不完整,并且还缺少许多功能(例如写入索引文件)。

除了使用 JRuby 或 Thrift Api 之外,还有其他方法可以使用 Ruby 来处理 HDFS 吗?

Is there a way to work with HDFS Api using Ruby? As I can understand there is no multilanguage file Api and the only way is to use native Java Api. I tried using JRuby but this solution is to unstable and not very native. Also I looked at HDFS Thrift Api but it's not complete and also lacks many features (like writing to indexed files).

Is there a way to work with HDFS using Ruby besides from using JRuby or Thrift Api?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

握住你手 2024-09-14 16:55:46

github上有两个项目符合你的要求。 ruby-hdfs 为 Ruby 提供到 HDFS 的本机 C 绑定。 ganapati 与 Thrift 服务器交互。

您还可以直接对文件系统 shell 进行系统调用。例如:

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

There are two projects in github that fit what you're asking. ruby-hdfs provides native C bindings to HDFS for Ruby. ganapati interfaces with a Thrift server.

You could also make system calls directly to the file system shell. For example:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文