hadoop - ImportError: No module named hdfs.ext.kerberos -


i able find full yarn log job. seems passed arguments oozie fine. when run script itself, kerberos works fine. when run through oozie i've got import error. did kinit , added kerberos oozie run script.

part of workflow

<action name="forceloadfromlocal2hdfs"> <shell xmlns="uri:oozie:shell-action:0.1">   <job-tracker>${jobtracker}</job-tracker>   <name-node>${namenode}</name-node>   <configuration>     <property>       <name>mapred.job.queue.name</name>       <value>${queuename}</value>     </property>   </configuration>   <exec>driver-script.sh</exec>   <argument>s</argument>   <argument>00_load_local_2_hdfs.py</argument>   <argument>${localfilepath}v</argument>   <argument>${hdfspath}</argument>     <file>driver-script.sh#driver-script.sh</file>   <file>00_load_local_2_hdfs.py#00_load_local_2_hdfs.py</file> </shell> <ok to="createinttable"/> <error to="killaction"/> </action> 

log output

invoking main class >>>  setting [tez.application.tags] tag: oozie-65aba8c86f895c9d1c4566bff4aff2f3 current working dir     /srv/data4/hadoop/yarn/local/usercache/me/appcache/application_1501083332770_0061/container_e69_1501083332770_0061_01_000002  ------------------------- 0:driver-script.sh: 1:s: 2:load_local_2_hdfs.py: 3:/melocal/teplota.csv: 4:/mehdp/dataframe/data/: list of passing environment  invoking shell command line >>  ... mess ...  stdoutput traceback (most recent call last): stdoutput   file "/srv/data4/hadoop/yarn/local/usercache/me/appcache/application_1501083332770_0061/container_e69_1501083332770_0061_01_000002/load_local_2_hdfs.py", line 2, in <module> stdoutput     hdfs.ext.kerberos import kerberosclient stdoutput importerror: no module named hdfs.ext.kerberos stdoutput     ============================================================================== stdoutput zacatek       1501229981 stdoutput konec 1501229982 stdoutput celkem        1 exit code of shell command 0 invocation of shell command completed <<< invocation of main class completed <<< 

part of oozie run script

oozie job -config ${job_properties} -run -verbose \  -oozie ${oozie_url} \  -d oozie.wf.application.path=${hdfs_uri} \  -d oozie.use.system.libpath=true \  -auth kerberos  

authorization part in workflow hive

<credentials> <credential name="hs2-creds" type="hive2">   <property>     <name>hive2.server.principal</name>       <value>hive/namenode@domain.had</value>   </property>   <property>    <name>hive2.jdbc.url</name>      <value>jdbc:hive2://namenode:10000/default</value>   </property> </credential> 

thx lot!

edit: think need move hdfs.ext.kerberos libs /user/oozie/share/lib/spark , set property oozie.action.sharelib.for.spark path.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -