1

While following the kudu QuickStart at http://kudu.apache.org/docs/quickstart.html I encountered the error "ERROR: AnalysisException: A data distribution must be specified using a DISTRIBUTE BY clause." while trying to create the kudu table passenger_data from the impala table passenger_data_raw.

[quickstart.cloudera:21000] > CREATE TABLE passenger_data
                            > TBLPROPERTIES(
                            > 'storage_handler' = 'com.cloudera.kudu.hive.KuduStorageHandler',
                            > 'kudu.table_name' = 'passenger_data',
                            > 'kudu.master_addresses' = '127.0.0.1',
                            > 'kudu.key_columns' = 'id'
                            >  ) AS SELECT * FROM passenger_data_raw;
Query: create TABLE passenger_data
TBLPROPERTIES(
'storage_handler' = 'com.cloudera.kudu.hive.KuduStorageHandler',
'kudu.table_name' = 'passenger_data',
'kudu.master_addresses' = '127.0.0.1',
'kudu.key_columns' = 'id'
 ) AS SELECT * FROM passenger_data_raw
ERROR: AnalysisException: A data distribution must be specified using a DISTRIBUTE BY clause.

System Specification 1. Macbook 2011 2. OS El-Capitan 3. CDH VM downloaded for kudu as directed by the quickstart guide. 4. kudu 0.9.0 (rev 5f2bf643d8ce3d042aa3903543a92841077a6874) uuid ca7e69c27e064aac8fa64db53cad71e5

Can someone please help.

Jeremy Beard
  • 2,727
  • 1
  • 20
  • 25

1 Answers1

3

Luckily a google search led me to http://www.cloudera.com/documentation/betas/kudu/0-5-0/PDF/cloudera-kudu.pdf . So i tried using the "DISTRIBUTE BY HASH" .... I have no idea why I tried it maybe because it was related to the error. This query worked for me.

CREATE TABLE passenger_data
DISTRIBUTE BY HASH (id) INTO 16 BUCKETS
TBLPROPERTIES(
'storage_handler' = 'com.cloudera.kudu.hive.KuduStorageHandler',
'kudu.table_name' = 'passenger_data',
'kudu.master_addresses' = '127.0.0.1',
'kudu.key_columns' = 'id'
 ) AS SELECT * FROM passenger_data_raw;

Hopefully it is useful for someone else.