2014-10-01 61 views
0

我正嘗試加載在Cassandra中創建的簡單表格sing cql命令。但當我嘗試轉儲時,加載失敗。我的豬腳本看起來像這樣。無法從Cassandra使用Pig加載簡單表格

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 
) 

我得到以下異常(我試着與卡桑德拉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 

回答

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;