Hello everyone,

I am having an issue running the command “msck repair table <tablename>” from 
an ooze hive action. My hive action is completing successfully; the table is 
created but the data doesn’t appear in hive until I manually run “msck repair 
table checks;”. Why would this command work when run manually, but not work 
when run via oozie hive action? Again, every other part of the hive script 
appears to be working as expected. My hive script “updatepartitions.q” is as 
follows:

create database IF NOT EXISTS ${scope};
use ${scope};
drop table checks;
create external table checks
partitioned by (p_date string, p_merchantId bigint)
row format serde      'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
stored as inputformat 
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
outputformat          
'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
location              '${datasetBase}/${scope}/checks'
tblproperties (
    'avro.schema.url'='${avroSchemaFile}'
);
msck repair table checks;


And my hive action is:

        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <job-xml>${currentAutomation}/job-defaults.xml</job-xml>
            <script>updatepartitions.q</script>
            <param>scope=${scope}</param>
            <param>datasetBase=${datasetBase}</param>
            <param>avroSchemaFile=${avroSchemaFile}</param>
        </hive>

Any thoughts or feedback are much appreciated. Thanks!


Best,
Andrew

Reply via email to