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