2015-07-31 23 views
5

Bazı kovan sorguları yapmak ve sonuçlarda bazı eylemler gerçekleştirmek için bir BASH kabuk betiğini çalıştıran bir Oozie iş akışı yazdım. Komut dosyası çalışıyor ancak bazı HDFS verilerine erişirken izin hatası veriyor. Oozie iş akışını gönderen kullanıcının izni var, ancak komut, iplik kullanıcısı olarak çalışıyor.Oozie kabuğu eylemi gönderen kullanıcı olarak çalışmıyor

Oozie'nin betiği iş akışını gönderen kullanıcı olarak yürütmesini sağlamak mümkün mü? Kovan ve Java eylemleri hem gönderilmiş kullanıcı olarak yürütülür, sadece kabuk farklı davranır.

İşte benim Oozie eylem

<action name="start_action" 
     retry-max="12" 
     retry-interval="600"> 
    <shell xmlns="uri:oozie:shell-action:0.1"> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <job-xml>${WorkflowRoot}/hive-site.xml</job-xml> 
     <exec>script.sh</exec> 
     <file>${WorkflowRoot}/script.sh</file> 
     <capture-output /> 
    </shell> 
    <ok to="next_action"/> 
    <error to="send_email"/> 
</action> 

Ben Oozie 4.1.0 ve HDP 2.1 çalıştırıyorum kaba taslak var.

+0

hcat.metastore.uri, hcat.metastore.principal'ı kimlik bilgilerini ayarladınız mı? – Prashanth

cevap

1

Bu sorun, Basit Güvenlik kullanılarak yapılandırılmış tüm kümelerde gerçekleşecektir. Varsayılan yapılandırmayı geçersiz kılmak için bir seçeneğiniz var. Kabuk betiğinin başlangıcında aşağıdaki ifadeyi dahil edin, bu sorunu düzeltir.

export HADOOP_USER_NAME=<Name of submitted user>;