前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hue中使用Oozie创建Ssh工作流时sudo命令执行失败问题分析

Hue中使用Oozie创建Ssh工作流时sudo命令执行失败问题分析

作者头像
Fayson
修改2018-04-01 19:48:23
1.6K0
修改2018-04-01 19:48:23
举报
文章被收录于专栏:Hadoop实操

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject

1.问题描述


在使用Hue创建Ssh的Oozie工作流,在Shell脚本中执行sudo命令失败,异常如下:

测试shell脚本

代码语言:txt
复制
#!/bin/bash

sudo mkdir /dfs/myshell

运行异常:

代码语言:txt
复制
 Log Upload Time: Mon Dec 18 05:22:07 -0500 2017
          
            Log Length: 400
          
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

sudo: no tty present and no askpass program specified
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]

2.问题复现


1.使用Fayson用户登录Hue,创建一个Shell Workflow的工作流

2.将test.sh脚本上传至当前工作流的workspace/lib目录下

3.保存工作流,点击运行,作业执行失败

失败日志如下

3.问题解决


1.使用root用户修改/etc/sudoers文件,将fayson用户修改为拥有sudo权限的用户

在/etc/sudoers文件末尾增加如下配置

代码语言:txt
复制
fayson          ALL=(ALL)       NOPASSWD: ALL

将配置文件中的如下信息注释

代码语言:txt
复制
#
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear. 
#         You have to run "ssh -t hostname sudo <cmd>".
#
#Defaults    requiretty

注意:这里需要集为群所有节点的fayson用户添加sudo权限。

2.再次运行作业

3.保存作业并执行

4.总结


  • 在Oozie的Ssh Action脚本中有需要使用Sudo权限去执行的命令,则需要为fayson用户添加Sudo权限,否则是无法执行Sudo命令的。
  • 在非Kerberos环境下如果需要切换不同的用户执行hadoop命令,可以使用exportHADOOP_USER_NAME=hive在Shell加载执行用户。

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.问题解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档