为Linux集群创建新账户,并配置hadoop集群

转自:http://blog.csdn.net/bluesky8640/article/details/6945776

之前装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 the first if : $ip"
} else {
set ip x1$i
puts "it is the first else : $ip"
}

spawn ssh $ip
expect "*password:*"
send "$password\r"
expect eof

expect "#"
send "mkdir /home/hod/.ssh\r"
expect "#"
send "exit\r"
expect eof
}
close

在x101服务器的/home/hod/.ssh目录下创建authorized_keys文件,并设置为644权限,这很关键.(这部操作也就不必了,后面ssh-copy-id
-i ~/.ssh/id_rsa.pub
[email protected]会自动创建authorized_keys文件,且mod为600,这个权限也是可以的)

SSH无密码登录steps:
为了让在A上可以无密码SSH到B上
首先在A上执行ssh-keygen -t
rsa

一路回车

将公钥导入到authorized_keys文件中

cat ~/.ssh/rsa_id.pub >> authorized_keys

修改文件和文件夹权限
chmod 600
authorized_keys

chmod 700 ~/.ssh

将authorized_keys分发到远程主机

scp ~/.ssh/authorized_keys
[email protected]:/home/meteor/.ssh

现在就可以无密码登录了。

ssh [email protected]

为x101~x156配置ssh无密码登录:

wumimadenglu.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"
}

spawn ssh $ip
expect "*password:*"
send "$password\r"
expect eof

expect "#"
send "ssh-keygen -t rsa\r"
expect "*save the key*"
send "\r"
expect "*Enter passphrase*"
send "\r"
expect "*Enter same passphrase again*"
send "\r"
expect eof

expect "#"
send "ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]\r"
expect "*password:*"
send "$password\r"
expect "#"
send "exit\r"
expect eof
}
close

最后只要将x101下的authorized_keys文件拷贝到x102~x156的.ssh目录即可.这方法会比之前为root账户配置ssh无密码登录快很多很多.

copyauthorized_keystoall.exp


#!/usr/bin/expect -f
set password 123456
for {set i 2} {$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"
}

spawn scp /home/hod/.ssh/authorized_keys [email protected]$ip:/home/hod/.ssh/
expect "*password:*"
send "$password\r"
expect eof
}
close

这里需要说明一点,在进行scp的时候尽量使用/home/hod/.ssh/authorized_keys这样的绝对目录,使用~/.ssh/authorized_keys可能会由于找不到目录而出错

后续操作:

配置好ssh无密码登录之后,我在hod账户目录下安装了python和jdk,方法都是先拷贝安装包或压缩包再解压安装

copypythontoall.sh


    for((i=2;i<57;i++))
do
if [ $i -lt 10 ]
then
scp /home/hod/Python-2.5.1.tgz [email protected]$i:/home/hod/
echo "it is the first if: x10$i"
else
scp /home/hod/Python-2.5.1.tgz [email protected]$i:/home/hod/
echo "it is the first else: x1$i"
fi
done

installpythontoall.exp


#!/usr/bin/expect -f
for {set i 2} {$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"
}

spawn ssh $ip
expect "#"
send "tar zxvf /home/hod/Python-2.5.1.tgz\r"
expect "#"
send "cd /home/hod/Python-2.5.1\r"
expect "#"
send "./configure\r"
expect "#"
send "make\r"
expect "#"
send "sudo make install\r"
expect "*Password:*"
send "123456\r"
expect "#"
send "exit\r"
expect eof

puts "$ip completed"
sleep 3
}
close

copyjdktoall.sh


    for((i=2;i<57;i++))
do
if [ $i -lt 10 ]
then
scp /home/hod/jdk-7u1-linux-i586.tar.gz [email protected]$i:/home/hod/
echo "it is the first if: x10$i"
else
scp /home/hod/jdk-7u1-linux-i586.tar.gz [email protected]$i:/home/hod/
echo "it is the first else: x1$i"
fi
done

installjdktoall.exp


    #!/usr/bin/expect -f
for {set i 2} {$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"
}

spawn ssh $ip
expect "#"
send "tar zxvf /home/hod/jdk-7u1-linux-i586.tar.gz\r"
expect "#"
send "exit\r"
expect eof

puts "$ip completed"
sleep 3
}
close

安装hadoop:

installhadooptoall.exp


    #!/usr/bin/expect -f
set password 123456
for {set i 2} {$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"
}

spawn scp /home/hod/hadoop-0.20.2.tar.gz [email protected]$ip:/home/hod/

spawn ssh $ip
expect "#"
send "mkdir /home/hod/hadoop\r"
expect "#"
send "cp /home/hod/hadoop-0.20.2.tar.gz /home/hod/hadoop/\r"
expect "#"
send "tar zxvf /home/hod/hadoop/hadoop-0.20.2.tar.gz\r"
expect "#"
send "exit\r"
expect eof

puts "$ip completed"
sleep 3
}
close

tar zxvf
/home/hod/hadoop/hadoop-0.20.2.tar.gz会有问题,该操作会把hadoop压缩包解压在/home/hod目录下,应该在这之前先执行cd
/home/hod/hadoop操作

在x101按之前root的操作配置好参数:

copypeizhitoall.sh


    for((i=2;i<57;i++))
do
if [ $i -lt 10 ]
then
scp -r /home/hod/hadoop/hadoop-0.20.2/conf [email protected]$i:/home/hod/hadoop/hadoop-0.20.2/
scp /home/hod/hadoop/hadoop-0.20.2/contrib/hod/conf/hodrc [email protected]$i:/home/hod/hadoop/hadoop-0.20.2/contrib/hod/conf/
echo "it is the first if: x10$i"
else
scp -r /home/hod/hadoop/hadoop-0.20.2/conf [email protected]$i:/home/hod/hadoop/hadoop-0.20.2/
scp /home/hod/hadoop/hadoop-0.20.2/contrib/hod/conf/hodrc [email protected]$i:/home/hod/hadoop/hadoop-0.20.2/contrib/hod/conf/
echo "it is the first else: x1$i"
fi
done

最后用root用户在/etc/profile文件末尾加上下面语句,并把/etc/profile拷贝覆盖x102~x156


export JAVA_HOME=/home/hod/jdk1.7.0_01
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export HADOOP_HOME=/home/hod/hadoop/hadoop-0.20.2
export PATH=$HADOOP_HOME/bin:$PATH
export CLUSTER_NAME=clus
export RM_QUEUE=batch
export RM_HOME=/usr/local
export PYTHON_HOME=/home/hod/Python-2.5.1
export PATH=$PYTHON_HOME:$PATH
export HOD_PYTHON_HOME=/home/hod/Python-2.5.1/python
export HOD_CONF_DIR=/home/hod/hadoop/hadoop-0.20.2/contrib/hod/conf
export HOD_HOME=/home/hod/hadoop/hadoop-0.20.2/contrib/hod
export PATH=$HOD_HOME/bin:$PATH

为Linux集群创建新账户,并配置hadoop集群,布布扣,bubuko.com

时间: 2024-10-21 02:37:25

为Linux集群创建新账户,并配置hadoop集群的相关文章

根据要素选择集,创建新图层

转自原文 根据要素选择集,创建新图层 IFeatureLayer featureLayer = new FeatureLayerClass();                     featureLayer.FeatureClass = featureClass; IFeatureSelection featureSelection = featureLayer as IFeatureSelection;                     IQueryFilter queryFilte

Linux下如何创建新用户

Linux下如何创建新用户 Linux系统中,只有root用户有创建其他用户的权限.创建过程如下:   useradd -d /home/newuser newuser(设定了该用户的主目录和用户名)   useradd -d /home/newuser -g 0 -G 0,1,3,4,6,10 -u 500 -r -p Love newuser(指定了用户的组id以及一系列的所属组的id,用户id,密码等) 为用户显式设定密码 命令为passwd username:    [[email pr

Linux下的Eclipse远程运行Mapreduce到hadoop集群

假设已经配置好集群. 在开发客户机Linux centos 6.5上进行: a.客户机centos 有一个和集群同名的访问用户:huser. b.vim /etc/hosts 加入namenode,加入本机IP. ------------------------- 1.安装hadoop集群 同版本的 jdk, hadoop, 2.Eclipse 编译和安装同版本的 hadoop-plugin, 2.a设定preference->hadoop MR->hadoop install directo

Linux下SVN创建新的项目

Linux环境下的SVN创建新的项目 一.前置条件: 1)有安装了linux系统的服务器,123.*.*.29 2)服务器上安装了svn,本人服务器的svn的数据安装的目录地址:/application/svndata 二.创建新的svn项目: 1)进入到linux服务器.可以是root的的目录下 2)创建仓库的命令:svnadmin create /application/svndata/iReportTest  (本次建立的项目名称为iReportTest,为了练习iReport+Jaspe

配置hadoop集群服务之四-集群搭建

接下来开始真正意义上的集群搭建 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } Tip:hadoop集群搭建完以后,最好要格式化:hadoop namenode -format; HDFS集群是否启动成功,看这两个进程:namenode/datanode; Yarn集群是否启动成功,看这两个进程:Resourcemanager/Namemanager; p.p

安装win8/win8.1/win10跳过创建新账户直接管理员账户登陆教程

安装到你建立账户窗口时,按Shift+F10调出“命令提示符”,输入: net user administrator /active:yes再输入: taskmgr然后调出“任务管理器”,点击“详细信息”,选择“Winlogon.exe”,点击“结束任务”即可直接登陆内置的Administrator账户. 安装过程中,断网,或者遇到输入微软账号时,也可点击注册,然后选择本地账号,即可使用本地账号.

Oracle创建新账户并设置账户权限

使用Oracle数据库,如果想创建一个用户账号怎么办?由于这个比较容易忘记,在此记录一下: 最后生成的SQL脚本语句是: -- Create the user         create user SA         default tablespace USERS         temporary tablespace TEMP         profile DEFAULT;      -- Grant/Revoke role privileges          grant con

配置hadoop集群服务之一

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px;

CentOS下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决

我用的是hadoop 1.2.1 遇到的问题是: hadoop中datanode无法启动,报Caused by: java.net.NoRouteToHostException: No route to host 2013-06-11 02:22:13,637 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /***************************************************