温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
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
exportHADOOP_USER_NAME=fayson
sqoopimport --connect \
jdbc:mysql://ip-172-31-6-148.fayson.com/test_db \
--username root \
--password123456\
--table test_user \
--target-dir /fayson/sqoopdata -m1
hadoopfs -mv /fayson/sqoopdata/part-* /user/hive/warehouse/test_user
exportPYTHON_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"
exportHADOOP_USER_NAME=hdfs
hadoopfs -ls /user/hive/warehouse/
3.测试数据准备
1.MySQL的test_user表数据
2.使用hive用户登录Hue创建test_user表并授权给fayson用户
CREATE TABLEtest_user(
idint,
namestring,
ageint
)
ROW FORMAT DELIMITED FIELDS TERMINATEDBY','
storedasTEXTFILE;
授权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执行
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
本文来自企鹅号 - Hadoop实操媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文来自企鹅号 - Hadoop实操媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。