将Gem添加到Hive中的分布式缓存

时间:2013-09-10 23:38:17

标签: ruby hive hadoop-streaming

我有一个我希望与Hive流使用的ruby脚本。此脚本需要使用外部gem。由于我的数据节点上未安装此gem,因此脚本将无法运行。

我希望能够临时添加这个gem来运行这个工作。有没有办法将此gem包含在分布式缓存中?也许作为拉链? (例如ADD FILE custom_gem.zip)

1 个答案:

答案 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"