我有一个要与 Hive 流一起使用的 ruby 脚本。此脚本需要使用外部 gem。因为我的数据节点上没有安装这个 gem,所以脚本不会运行。
我希望能够临时添加这个 gem 来运行这个工作。有没有办法将此 gem 包含到分布式缓存中?也许作为一个拉链?(例如添加文件 custom_gem.zip)
我有一个要与 Hive 流一起使用的 ruby 脚本。此脚本需要使用外部 gem。因为我的数据节点上没有安装这个 gem,所以脚本不会运行。
我希望能够临时添加这个 gem 来运行这个工作。有没有办法将此 gem 包含到分布式缓存中?也许作为一个拉链?(例如添加文件 custom_gem.zip)
我发现最好的方法是手动将 gem 的文件添加到分布式缓存中。
以下是使用浏览器 Ruby gem 的示例:
browser-master.zip
我从 GitHub下载并解压缩。然后我将整个解压缩的文件夹添加到分布式缓存中:
ADD FILE /home/user/browser-master
在我在 Hive 中使用的 Ruby 脚本中,我必须告诉 Ruby 在哪里可以从 gem 中找到所需的文件:
$.push File.expand_path("../browser-master/lib", __FILE__)
require "browser"