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
Post a Comment