0123-Hue中使用Oozie创建Shell工作流在脚本中切换不同用户

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

Fayson的github:https://github.com/fayson/cdhproject

1.文档编写目的


前面Fayson讲过《

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

》,如果不在Shell脚本中使用sudo命令该如何切换到其它呢?本篇文章主要讲述如何Hue中使用Oozie创建Shell工作流在脚本中切换用户执行Hadoop命令。本文脚本中的主要流程如下:

  • 内容概述

1.编写测试shell脚本

2.准备测试数据及创建工作流

3.测试工作流

  • 测试环境

1.CM和CDH版本为5.13.1

2.采用root用户操作

  • 前置条件

1.集群未启用Kerberos

2.准备测试脚本


编写test.sh测试脚本,内容如下:

#!/bin/bash
export HADOOP_USER_NAME=fayson
sqoop import --connect \
 jdbc:mysql://ip-172-31-6-148.fayson.com/test_db \
 --username root \
 --password 123456 \
 --table test_user \
 --target-dir /fayson/sqoopdata -m 1
hadoop fs -mv /fayson/sqoopdata/part-* /user/hive/warehouse/test_user
export PYTHON_EGG_CACHE=/tmp/.python-eggs/
impala-shell -u impala -i cdh04.fayson.com -q "invalidate metadata"
impala-shell -u fayson -i cdh04.fayson.com -q "select * from test_user"
export HADOOP_USER_NAME=hdfs
hadoop fs -ls /user/hive/warehouse/

3.测试数据准备


1.MySQL的test_user表数据

2.使用hive用户登录Hue创建test_user表并授权给fayson用户

CREATE TABLE test_user(
 id int,
 name string,
 age int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
stored as TEXTFILE;

授权fayson用户有test_user表的所有权限

4.创建Oozie工作流


1.使用fayson用户登录Hue,创建一个工作流

2.点击保存,进入workspace/lib目录将编写好的test.sh脚本上传至该目录下

3.选择Ssh Action到工作流区域

4.选择上传至该工作流WorkSpace/lib目录下的shell

5.点击 “Add”,点击保存按钮完成工作流创建

5.测试MyFirstWorkflow工作流


1.点击运行按钮

提交工作流

2.点击“Submit”提交工作流,进入运行界面

3.运行成功

6.验证运行结果


1.使用fayson用户登录Hue查询test_user表

2.Shell脚本里面的hadoop fs –ls /user/hive/warehouse正确的将该目录下数据列出

在命令行使用fayson用户是没有权限查看该目录的

由此可以说明exprot HADOOP_USER_NAME成功切换了用户为hdfs

3.Impala-shell执行

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

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


您可能还想看

安装


CENTOS6.5安装CDH5.12.1(一)

CENTOS6.5安装CDH5.12.1(二)

CENTOS7.2安装CDH5.10和Kudu1.2(一)

CENTOS7.2安装CDH5.10和Kudu1.2(二)

如何在CDH中安装Kudu&Spark2&Kafka

如何升级Cloudera Manager和CDH

如何卸载CDH(附一键卸载github源码)

如何迁移Cloudera Manager节点

如何在Windows Server2008搭建DNS服务并配置泛域名解析

安全


如何在CDH集群启用Kerberos

如何在Hue中使用Sentry

如何在CDH启用Kerberos的情况下安装及使用Sentry(一)

如何在CDH启用Kerberos的情况下安装及使用Sentry(二)

如何在CDH未启用认证的情况下安装及使用Sentry

如何使用Sentry管理Hive外部表权限

如何使用Sentry管理Hive外部表(补充)

如何在Kerberos与非Kerberos的CDH集群BDR不可用时复制数据

Windows Kerberos客户端配置并访问CDH

数据科学


如何在CDSW中使用R绘制直方图

如何使用Python Impyla客户端连接Hive和Impala

如何在CDH集群安装Anaconda&搭建Python私有源

如何使用CDSW在CDH中分布式运行所有R代码

如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业

如何使用R连接Hive与Impala

如何在Redhat中安装R的包及搭建R的私有源

如何在Redhat中配置R环境

什么是sparklyr

其他


CDH网络要求(Lenovo参考架构)

大数据售前的中年危机

如何实现CDH元数据库MySQL的主备

如何在CDH中使用HPLSQL实现存储过程

如何在Hive&Impala中使用UDF

Hive多分隔符支持示例


推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

举报
评论 0