我已经将CLoudera 5.7安装程序与Active目录集成在一起,使用AD integration上显示的kerberos。但问题是我必须在HDFS @ / user中为每个用户创建一个用户目录,以便为用户提供访问hadoop的权限。 一旦用户登录边缘节点,他们是否会以任何方式自动在hdfs中创建用户目录?由于很难在群集上创建和删除7000+员工的用户目录。
答案 0 :(得分:0)
您可以创建/etc/profile.d/hadoop.sh
脚本来自动化流程。创建hadoop shell时将始终调用此脚本(即执行hadoop命令)。
以下是示例。
第1步。将以下scriptlet添加到/etc/profile.d/hadoop.sh
[root @ mybox tmp]#tail -n 5 /etc/profile.d/hadoop.sh
if [[ "$FROM_HADOOP_PROFILE" != "1" ]]
then
/bin/bash -x /etc/profile.d/FromHadoopProf.sh
fi
第2步。创建FromHadoopProf.sh脚本以为用户
[root@mybox tmp]# cat /etc/profile.d/FromHadoopProf.sh
#!/bin/bash
export FROM_HADOOP_PROFILE=1
uname=`whoami`
hdir=""
if [[ "$uname" == "root" ]]
then
hdir="/root"
else
hdir="/user/$uname"
fi
hadoop fs -ls -d $hdir
lsout=`echo $?`
echo $lsout
if [[ "$lsout" != "0" ]]
then
echo file does not exists
sudo -u hdfs hadoop fs -mkdir $hdir
fi
注意:
答案 1 :(得分:0)
我编写了以下脚本,用于在新AD用户的hdfs中创建自动目录。
klist >/dev/null 2>&1
if [ $? == 0 ]
then
hadoop fs -test -d /user/$USER >/dev/null 2>&1
if [ $? != 0 ]
then
noOutput=`echo "password" | kinit hdfs`
hdfs dfs -mkdir /user/$USER
hdfs dfs -chmod -R 700 /user/$USER
hdfs dfs -chown -R $USER:$USER /user/$USER
kdestroy
echo "$(tput setaf 1)enter password for creating home directory on hdfs. This is one time activity$(tput sgr 0)"
kinit $USER
fi
fi