为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
在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集群的更多相关文章
- hadoop集群环境搭建之安装配置hadoop集群
在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/ (如果没有这个目录 ...
- Linux中安装配置hadoop集群
一. 简介 参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功.下面就把详细的安装步骤叙述一下.我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择 ...
- Linux下SVN创建新的项目
Linux下SVN创建新的项目 Linux环境下的SVN创建新的项目 一.前置条件: 1)有安装了linux系统的服务器,123.*.*.29 2)服务器上安装了svn,本人服务器的svn的数据安 ...
- Linux下如何创建新用户
Linux下如何创建新用户 Linux系统中,只有root用户有创建其他用户的权限.创建过程如下: useradd -d /home/newuser newuser(设定了该用户的主目录和用户名) ...
- 安装和配置hadoop集群步骤
hadoop集群的安装步骤和配置 hadoop是由java语言编写的,首先我们肯定要在电脑中安装jdk,配置好jdk的环境,接下来就是安装hadoop集群的步骤了,在安装之前需要创建hadoop用户组 ...
- 在 Linux 服务器上搭建和配置 Hadoop 集群
实验条件:3台centos服务器,jdk版本1.8.0,Hadoop 版本2.8.0 注:hadoop安装和搭建过程中都是在用户lb的home目录下,master的主机名为host98,slave的主 ...
- 如何在 Linux 终端下创建新的文件系统/分区
在 Linux 中创建分区或新的文件系统通常意味着一件事:安装 Gnome Parted 分区编辑器(GParted).对于大多数 Linux 用户而言,这是唯一的办法.不过,你是否考虑过在终端创建这 ...
- Linux内核分析-创建新进程的过程
分析Linux内核创建一个新进程的过程 task_struct结构体分析 struct task_struct{ volatile long state; //进程的状态 unsigned long ...
- Linux内核分析— —创建新进程的过程
分析Linux内核创建一个新进程的过程 实验过程 要求:使用gdb跟踪分析一个fork系统调用内核处理函数sys_clone ,验证对Linux系统创建一个新进程的理解,推荐在实验楼Linux虚拟机环 ...
随机推荐
- 2018.08.28 洛谷P4556 [Vani有约会]雨天的尾巴(树上差分+线段树合并)
传送门 要求维护每个点上出现次数最多的颜色. 对于每次修改,我们用树上差分的思想,然后线段树合并统计答案就行了. 注意颜色很大需要离散化. 代码: #include<bits/stdc++.h& ...
- 2018.07.06 BZOJ 1588: HNOI2002营业额统计(非旋treap)
1588: [HNOI2002]营业额统计 Time Limit: 5 Sec Memory Limit: 162 MB Description 营业额统计 Tiger最近被公司升任为营业部经理,他上 ...
- javascript 字符数组转换成以逗号隔开的字符串
var ids = [];angular.forEach(pulsarServers,function (server) { ids.push(server.id);});ids = ids.join ...
- s28 LNMP架构服务搭建
nginx-location使用 location语法 location使用的语法例子为: location [=|~|~*|^~] uri{ 对location语法列表说明. |1ocation | ...
- 如何让编译器实现struts2的xml提示
首先,选择pereference--->搜索xml 找到xml Catalog 点击右侧的add添加 下载好对应的dtd文档,然后在本地的WEB-INF下建立一个dtd文件夹,将dtd拷入. A ...
- 【翻译】追溯“typeof null”的历史
我的翻译小站:https://www.zcfy.cc/article/the-history-of-typeof-null 翻译原文链接:http://2ality.com/2013/10/typeo ...
- (KMP 水)Wow! Such Doge! -- hdu -- 4847
http://acm.hdu.edu.cn/showproblem.php?pid=4847 Wow! Such Doge! Time Limit:1000MS Memory Limit:32 ...
- underscore functions
// 创建一个用于设置prototype的公共函数对象 var ctor = function() {}; 1..bind(function, object, [*arguments]) :绑定fun ...
- Android-Java-IO流概述
IO:I:Input输入 O:Output输出 IO流: IO:用于处理设备上数据的一种技术,处理设备上数据包括(Input / Output) ,设备指的是:内存,硬盘,U盘,打印机,等等..... ...
- ProtoBuf序列化和反序列化方法
最近公司需要将以前的协议全都改成ProtoBuf生成的协议,再将结构体打包和解包过程终于到一些问题 ,无法使用Marshal.SizeOf计算结构体大小,最后找了一下ProtoBuf的文档,可以用它自 ...