我想以不同的用户身份运行sqoop命令。我可以在运行sqoop作业之前设置HADOOP_USER_NAME命令,如下所示:
export HADOOP_USER_NAME=desiredUser
sqoop import \
-D mapreduce.map.memory.mb=4096 \
-D mapreduce.map.java.opts=-Xmx3200m \
--driver ...\
--connect ..\
--username ..
我想知道如果有一种方法可以在sqoop命令中设置它,就像我设置mapreduce.map.memory.mb选项一样。我试过了
...
-D HADOOP_USER_NAME=desiredUser
...
但它没有改变用户。 感谢您的回复
答案 0 :(得分:1)
对于用户,没有使用-D
的选项。 -D
用于提供mapreduce属性。但您可以尝试使用sudo
命令。使用sudo
Sqoop命令将为sudo HADOOP_USER_NAME=desiredUser sqoop import <generic args>
答案 1 :(得分:0)
您可以在Unix中通过Su向其他用户执行此操作并运行sqoop命令。请参阅以下示例:
su somebody << 'EOF'command1 -p 'parameter with “quotes" inline' EOF
您可以在EOF之间使用command2 -p 'parameter with "quotes" inline'
运行多个命令。
要特定于您的sqoop作业,如果您有权访问某些用户,请使用命令Su - yourUser “sqoop command”
如果你正在使用这个
sudo -H -u otheruser bash -c 'echo "I am $USER, with uid $UID"'
man sudo will be your guru to explore more options