使用分布式缓存 - HIVE STREAMING

时间:2013-11-01 22:37:41

标签: ruby hadoop streaming hive distributed-cache

我想压缩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。

1 个答案:

答案 0 :(得分:0)

进行一些测试后,使用ADD FILE添加整个目录(解压缩)似乎有效:

ADD FILE /home/user/browser-master