0
点赞
收藏
分享

微信扫一扫

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

南陵王梁枫 2022-09-21 阅读 53

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


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


1.文档编写目的



前面Fayson讲过《​​Hue中使用Oozie创建Ssh工作流时sudo命令执行失败问题分析​​》,如果不在Shell脚本中使用sudo命令该如何切换到其它呢?本篇文章主要讲述如何Hue中使用Oozie创建Shell工作流在脚本中切换用户执行Hadoop命令。本文脚本中的主要流程如下:

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



  • 内容概述

1.编写测试shell脚本

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

3.测试工作流


  • 测试环境

1.CM和CDH版本为5.13.1

2.采用root用户操作


  • 前置条件

1.集群未启用Kerberos


2.准备测试脚本



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


#!/bin/bashexport HADOOP_USER_NAME=faysonsqoop 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 1hadoop fs -mv /fayson/sqoopdata/part-* /user/hive/warehouse/test_userexport 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=hdfshadoop fs -ls /user/hive/warehouse/


3.测试数据准备



1.MySQL的test_user表数据


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


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;


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


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


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

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


4.创建Oozie工作流



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


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


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


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

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


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


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

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


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


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

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


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


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


5.测试MyFirstWorkflow工作流



1.点击运行按钮


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


提交工作流


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


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


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


3.运行成功


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


6.验证运行结果



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


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


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


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


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


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


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


3.Impala-shell执行


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

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



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

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






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

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

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


举报

相关推荐

0 条评论