【问题标题】:Apache Pig: How to load a sequence file which is stored in hdfs?Apache Pig:如何加载存储在 hdfs 中的序列文件?
【发布时间】:2015-10-13 23:29:11
【问题描述】:

我的序列文件直接存储在 hdfs 例如:

grunt> ls   
grunt> ls /blabla
hdfs://namenode1:54310/blabla/0411f03a-db7f-48d0-9542-5203304e3e81.seq<r 3> 185284523
hdfs://namenode1:54310/blabla/05be8fc0-e967-42e1-b76a-0d7108a69d17.seq<r 3> 201489688
hdfs://namenode1:54310/blabla/06222427-519c-49c0-bbbf-49a9f43bbd13.seq<r 3> 196858576
hdfs://namenode1:54310/blabla/066da26a-48da-45b1-83f5-60d16475e40d.seq<r 3> 194832641
hdfs://namenode1:54310/blabla/07cbfc83-42a2-47bf-b364-d39da3a2d071.seq<r 3> 194806047
hdfs://namenode1:54310/blabla/10dea7b8-9ed3-4e66-b4bd-a3c07d8bf39e.seq<r 3> 166224702

如何创建一个 Pig 脚本,它从目录“blabla”中读取每个文件并执行操作?

我尝试了多种加载输入的方法,但都没有奏效:

%default INPUT '/blabla/f8fbbe9a-aae3-413f-b3b9-37cdef71da8f.seq'
%default INPUT 'hdfs://namenode1:54310/blabla/f8fbbe9a-aae3-413f-b3b9-37cdef71da8f.seq'
%default INPUT 'f8fbbe9a-aae3-413f-b3b9-37cdef71da8f.seq'

我总是得到错误:

输入:

Failed to read data from "hdfs://namenode1:54310/........."

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    您可以尝试通过以下方式读取序列文件:

    猪序列文件加载器:

    A = LOAD 'hdfs://namenode1:54310/blabla/*'  using org.apache.pig.piggybank.storage.SequenceFileLoader();
    

    (或)使用象鸟:

    REGISTER 'elephant-bird-pig-3.0.5.jar';
    REGISTER 'elephant-bird-core-4.1.jar';
    REGISTER 'elephant-bird-hadoop-compat-4.1.jar';   
    A = LOAD 'hdfs://namenode1:54310/blabla/*'  using com.twitter.elephantbird.pig.load.SequenceFileLoader(); 
    

    【讨论】:

      【解决方案2】:

      你试过这样吗:

      %default INPUT 'hdfs://namenode1:54310/blabla/*' 
      

      ?

      如果您的 .seq 文件是可读的,它应该可以工作。看起来他们不是,因为您尝试这样做应该加载一个文件。你能给出完整的日志行吗?

      也许你必须使用 pig SequenceFileLoader。

      【讨论】:

      • 你是对的。这是一个许可问题。 %default INPUT 'hdfs://namenode1:54310/blabla/*' 工作正常
      猜你喜欢
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多