2

我想压缩 Ruby gem 的文件,并将它们分发到我的 EMR 集群。我还想使用一个简单的 Ruby 脚本,在 Hive Streaming 作业中引用这个 gem 中的文件。

我使用以下方法将文件和存档添加到 Hadoop 分布式缓存中:

ADD FILE /home/user/mobile.rb; 
ADD ARCHIVE /home/user/browser-master.zip;

在 mobile.rb 中,我使用下面的代码来模拟使用 gem:

$.push File.expand_path("../browser-master/lib", __FILE__)
require "browser"

当我在本地计算机上的同一目录中拥有解压缩的存档和 mobile.rb 文件时,我可以将数据流式传输到它并正常运行程序。

但是当我将文件添加到我的 Hadoop 集群时,我得到了这个错误:

FAILED: Execution Error, return code 20003 from org.apache.hadoop.hive.ql.exec.MapRedTask. An error occurred when trying to close the Operator running your custom script.  

当存档在分布式缓存中解压缩时,我的 mobile.rb 是否需要指向其他内容?

我正在使用 Hive 0.11。

4

1 回答 1

0

在做了一些测试之后,添加整个目录(解压缩)ADD FILE似乎工作:

ADD FILE /home/user/browser-master
于 2013-11-13T06:23:42.300 回答