在sqoop命令中设置Hadoop用户

时间:2017-12-15 08:32:32

标签: sqoop

我想以不同的用户身份运行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
...

但它没有改变用户。 感谢您的回复

2 个答案:

答案 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