无法使用Pig从Cassandra加载简单表

时间:2014-10-01 15:31:17

标签: cassandra apache-pig

我正在尝试加载在Cassandra中创建的简单表cql命令。但是当我尝试转储时,加载失败。我的猪脚本看起来像这样。

    A = LOAD 'cql://pigtest/myusers' USING CqlStorage()
        AS (user_id:int,fname:chararray,lname:chararray);
    describe A;
    DUMP A;

我的用户表架构看起来像

CREATE TABLE users (
  user_id int ( primary key), 
  fnam text, 
  lname text
)

我得到以下异常(我尝试使用Cassandra 2.0.9和2.1.0,以及猪0.13)。请帮助我们解决根本原因/

    ERROR 1002: Unable to store alias A

    Caused by: InvalidRequestException(why:Expected 8 or 0 byte long (7))
        at org.apache.cassandra.thrift.Cassandra$execute_prepared_cql3_query_result$execute_prepared_cql3_query_resultStandardScheme.read(Cassandra.java:54918)
        at org.apache.cassandra.thrift.Cassandra$execute_prepared_cql3_query_result$execute_prepared_cql3_query_resultStandardScheme.read(Cassandra.java:54895)
        at org.apache.cassandra.thrift.Cassandra$execute_prepared_cql3_query_result.read(Cassandra.java:54810)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
        at org.apache.cassandra.thrift.Cassandra$Client.recv_execute_prepared_cql3_query(Cassandra.java:1861)
        at org.apache.cassandra.thrift.Cassandra$Client.execute_prepared_cql3_query(Cassandra.java:1846)
        at org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader$RowIterator.executeQuery(CqlPagingRecordReader.java:635)
        ... 28 more

1 个答案:

答案 0 :(得分:0)

验证服务器和客户端上的分区程序是否相同。 Murmur3Partitioner vs RandomPartitioner

> cqlsh -e "describe cluster" | head

Cluster: Test Cluster
Partitioner: Murmur3Partitioner

- 猪脚本

set cassandra.input.partitioner.class org.apache.cassandra.dht.Murmur3Partitioner;
set cassandra.output.partitioner.class org.apache.cassandra.dht.Murmur3Partitioner;