转自: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

在hod账户下进行如下的设置:

在每个服务器的hod目录下创建.ssh目录:(错!这部操作被证明是极大的错误,不用自己创建.ssh目录,使用“ssh-keygen -t rsa”会自动创建.ssh,自己创建.ssh目录会由于文件夹权限问题使得ssh无密码访问失效)

mkdirssh.exp(不需要使用)

在x101服务器的/home/hod/.ssh目录下创建authorized_keys文件,并设置为644权限,这很关键.(这部操作也就不必了,后面ssh-copy-id -i ~/.ssh/id_rsa.pub hod@x101会自动创建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 meteor@192.168.70.93:/home/meteor/.ssh

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

ssh meteor@192.168.70.93

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

wumimadenglu.exp

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

copyauthorized_keystoall.exp

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

后续操作:

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

copypythontoall.sh

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

installpythontoall.exp

copyjdktoall.sh

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

installjdktoall.exp

安装hadoop:

installhadooptoall.exp

    #!/usr/bin/expect -f
set password
for {set i } {$i<} {incr i} {
if {$i<} {
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..tar.gz hod@$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
}
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=;i<;i++))
do
if [ $i -lt ]
then
scp -r /home/hod/hadoop/hadoop-0.20./conf hod@x10$i:/home/hod/hadoop/hadoop-0.20./
scp /home/hod/hadoop/hadoop-0.20./contrib/hod/conf/hodrc hod@x10$i:/home/hod/hadoop/hadoop-0.20./contrib/hod/conf/
echo "it is the first if: x10$i"
else
scp -r /home/hod/hadoop/hadoop-0.20./conf hod@x1$i:/home/hod/hadoop/hadoop-0.20./
scp /home/hod/hadoop/hadoop-0.20./contrib/hod/conf/hodrc hod@x1$i:/home/hod/hadoop/hadoop-0.20./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..0_01
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export HADOOP_HOME=/home/hod/hadoop/hadoop-0.20.
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.
export PATH=$PYTHON_HOME:$PATH
export HOD_PYTHON_HOME=/home/hod/Python-2.5./python
export HOD_CONF_DIR=/home/hod/hadoop/hadoop-0.20./contrib/hod/conf
export HOD_HOME=/home/hod/hadoop/hadoop-0.20./contrib/hod
export PATH=$HOD_HOME/bin:$PATH

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

  1. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  2. Linux中安装配置hadoop集群

    一. 简介 参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功.下面就把详细的安装步骤叙述一下.我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择 ...

  3. Linux下SVN创建新的项目

    Linux下SVN创建新的项目   Linux环境下的SVN创建新的项目 一.前置条件: 1)有安装了linux系统的服务器,123.*.*.29 2)服务器上安装了svn,本人服务器的svn的数据安 ...

  4. Linux下如何创建新用户

    Linux下如何创建新用户 Linux系统中,只有root用户有创建其他用户的权限.创建过程如下:   useradd -d /home/newuser newuser(设定了该用户的主目录和用户名) ...

  5. 安装和配置hadoop集群步骤

    hadoop集群的安装步骤和配置 hadoop是由java语言编写的,首先我们肯定要在电脑中安装jdk,配置好jdk的环境,接下来就是安装hadoop集群的步骤了,在安装之前需要创建hadoop用户组 ...

  6. 在 Linux 服务器上搭建和配置 Hadoop 集群

    实验条件:3台centos服务器,jdk版本1.8.0,Hadoop 版本2.8.0 注:hadoop安装和搭建过程中都是在用户lb的home目录下,master的主机名为host98,slave的主 ...

  7. 如何在 Linux 终端下创建新的文件系统/分区

    在 Linux 中创建分区或新的文件系统通常意味着一件事:安装 Gnome Parted 分区编辑器(GParted).对于大多数 Linux 用户而言,这是唯一的办法.不过,你是否考虑过在终端创建这 ...

  8. Linux内核分析-创建新进程的过程

    分析Linux内核创建一个新进程的过程 task_struct结构体分析 struct task_struct{ volatile long state; //进程的状态 unsigned long ...

  9. Linux内核分析— —创建新进程的过程

    分析Linux内核创建一个新进程的过程 实验过程 要求:使用gdb跟踪分析一个fork系统调用内核处理函数sys_clone ,验证对Linux系统创建一个新进程的理解,推荐在实验楼Linux虚拟机环 ...

随机推荐

  1. 2018.07.08 NOIP模拟 好数(线段树)

    好数 题目背景 SOURCE:NOIP2016-AHSDFZ T3 题目描述 我们定义一个非负整数是"好数",当且仅当它符合以下条件之一: 1. 这个数是 0 或 1 . 2. 所 ...

  2. SQL之mysql常用操作语句(入门级)

    1.进入数据库: mysql -u root -p mysql -h localhost -u root -p database_name 2.列出数据库 show databases; 3.选择数据 ...

  3. gj11 多线程、多进程和线程池编程

    11.1 python中的GIL # coding=utf-8 # gil global interpreter lock (cpython) # python中一个线程对应于c语言中的一个线程 # ...

  4. Can not find the tag library descriptor for "/struts-tags"`

    1.查看struts.xml路径是否错误,要放在src下, 2.缺少struts-tags.tld (1)查找方式: (2)找到此包,然后右键用解压缩文件打开. (3)然后你会看到很多的源码,找到红圈 ...

  5. 使用yum命令报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:

    背景: yum包的管理是使用python写的,有对应的python版本   遇到的问题报错如下: File "/usr/bin/yum", line 30     except K ...

  6. Oracle定义DES加密解密及MD5加密函数

    http://blog.csdn.net/xdweleven/article/details/38319351   (1)DES加密函数create or replace functionencryp ...

  7. Beyond Compare脚本:命令行批量比较文件并生成html格式的差异报告

    BComp.exe /silent /closescript /solo @E:\compareTest\BCbatch.txt text-report layout:side-by-side opt ...

  8. GeoServer中配置GeoWebCache切片缓存目录

    war版的GeoServer中,默认情况下,GeoWebCache切片会缓存在C盘某目录下.该目录比较隐蔽,并且随着切片缓存的增多,所占空间也会越来越大,所以建议手动配置其切换缓存目录. 配置方式:在 ...

  9. 打开SQL2008R2配置工具,提示远程调用失败[0x800706be]

    卸载了Microsoft SQL Server 2012 Express LocalDB,依然不行. 再卸载Microsoft SQL Server 2014 LocalDB,此时右边显示框已可以显示 ...

  10. bower报错:未能连接到github.com端口1080:超时和一些其他错误

    报错1:fatal: unable to access 'https://github.com/xxx/xxxx.git/': Failed to connect to github.com port ...