Centos 6.3 Hadoop集群配置详解
环境:4台服务器 1 Master 3 Slave, 系统Centos 6.3,预先安装好JDK 1.7 和openssh(对相关安装配置过程有疑问或者困难的请google或者查阅笔者之前的blog),且关闭防火墙(避免配置好后运行过程引起不必要的意外)
服务器清单如下
HostName IP Master 192.168.1.200 Slave01 192.168.1.201 Slave02 192.168.1.202 Slave03 192.168.1.203
一.修改Hostname
将4台服务器的hostname 分别更改为Master,Slave01,Slave02,Slave03
sudo vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=XXXX
请将XXXX替换成对应服务器的Hostname
分别修改4台服务器的hosts
sudo vim /etc/hosts 192.168.1.200 Master 192.168.1.201 Slave01 192.168.1.202 Slave02 192.168.1.203 Slave03 //保存 reboot//重启后生效
可以通过输入hostname命令查看是否配置成功
二.设置SSH无密码登录
1)生成无密码秘钥对
在Master机器上执行如下命令
cd ~/.ssh ssh-keygen -t rsa -P '' -f id_rsa
按照提示信息回车即可
2)追加id_rsa.pub到授权的key里面去
sudo cat id_rsa.pub >>authorized_keys chmod 600 authorized_keys
切记需要修改成600权限,不安全的权限设置,会让你不能使用RSA功能
3)修改SSH配置文件
sudo vim /etc/ssh/sshd_config
修改以下内容
RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥私钥配对认证方式 AuthorizedKeysFile ~/.ssh/authorized_keys # 公钥文件路径
4)重启SSH服务
sudo service sshd restart
然后验证是否配置成功,可以通过ssh localhost看看是否需要输入密码,如果无需输入密码,说明配置成功,反之可以用如下2个命令进行问题定位和解决
ssh -v localhost
tail /var/log/secure -n 20
5)接着配置Master和Slave相互之间无密码SSH登陆
把Master上的 id_rsa.pub和id_rsa通过scp分别复制到3个slave服务器上,然后重复上述的 2,3,4操作
scp id_rsa.pub frankwong@192.168.1.203:/home/frankwong/.ssh scp id_rsa frankwong@192.168.1.203:/home/frankwong/.ssh
最后通过测试Master和Slave之间是否可以相互无密码SSH登陆
三.配置Hadoop
把hadoop-1.1.2.tar.gz 通过winSCP上传到linux上,解压缩,然后修改权限
cd~ sudo mv hadoop-1.1.2.tar.gz /opt sudo tar -zxvf hadoop-1.1.2.tar.gz sudo mv hadoop-1.1.2 hadoop sudo chown -R frankwong:frankwong hadoop
修改环境变量,切换到root权限
sudo vim /etc/profile export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin source /etc/profile
切换成frankwong用户
接着我们开始进入主题,登陆Master
1)配置hadoop-env.sh
配置JDK路径和日志保存路径
vim /opt/hadoop/conf/hadoop-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_17 export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
2)配置core-site.xml文件
请先在 /opt/hadoop 目录下建立 tmp 文件夹
备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。
<property> <name>fs.default.name</name> <value>hdfs://Master:9000</value> </property> <property> <name>Hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property>
3)配置hdfs-site.xml文件
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
4)配置mapred-site.xml文件
<configuration> <property> <name>mapred.job.tracker</name> <value>http://Master:9001</value> </property> </configuration>
5)配置masters文件
vim masters
增加Master
6)配置slaves文件(Master主机特有)
Slave01
Slave02
Slave03
7)把hadoop复制到其他Slave上
把Master配置好的hadoop文件全部复制到3个Slave的/opt目录下
8)启动服务
在Master上输入
hadoop namenode -format//格式化
start-all.sh//启动服务
查看Master状态:在Master上输入jps,结果如下
查看Slave状态:在任意一台Slave上输入jps,结果如下
还可以通过 hadoop dfsadmin -report 查看集群节点信息
9)网页查看集群
http://Master:50030
http://Master:50070
链接
hadoop三个配置文件的参数含义说明 http://blog.csdn.net/yangjl38/article/details/7583374