之前装python、jdk、hadoop都是用的root账户,这是一个绝对的失策,linux对用户访问权限很严格,新创的hod账户根本无法启动hadoop,而root在hod模式下使用torque是不被建议的,所以只能用hod账户再重新装一遍.
创建用户、设置密码、修改用户、删除用户:
useradd testuser 创建用户testuser
passwd testuser 给已创建的用户testuser设置密码
说明:新创建的用户会在/home下创建一个用户目录testuser
usermod --help 修改用户这个命令的相关参数
userdel testuser 删除用户testuser
rm -rf testuser 删除用户testuser所在目录
上面的几个命令只有root账号才可以使用,如果你不知道自己的系统上面的命令在什么位置可以使用如下命令查找其路径:locate useradd
在root账户下为服务器集群(x101~x156)创建新账户hod.
addhoduser.exp
#!/usr/bin/expect -f
set password 123456
for {set i 1} {$i<57} {incr i} {
if {$i<10} {
set ip x10$i
puts "it is the first if : $ip"
} else {
set ip x1$i
puts "it is the first else : $ip"
}
puts "$ip begins!"
spawn ssh $ip
expect "#"
send "useradd hod\r"
expect "#"
send "passwd hod\r"
expect "*New UNIX password*"
send "$password\r"
expect "*Retype new UNIX password*"
send "$password\r"
expect "#"
send "exit\r"
expect eof
puts "$ip end!"
}
close
在hod账户下进行如下的设置:
在每个服务器的hod目录下创建.ssh目录:(错!这部操作被证明是极大的错误,不用自己创建.ssh目录,使用“ssh-keygen -t rsa”会自动创建.ssh,自己创建.ssh目录会由于文件夹权限问题使得ssh无密码访问失效)
mkdirssh.exp(不需要使用)
#!/usr/bin/expect -f
set password 123456
for {set i 1} {$i<57} {incr i} {
if {$i<10} {
set ip x10$i
puts "it is t