| 
      环境:4台服务器 1 Master 3 Slave, 系统Centos 6.3,预先安装好JDK 1.7 和openssh(对相关安装配置过程有疑问或者困难的请google或者查阅笔者之前的blog),且关闭防火墙(避免配置好后运行过程引起不必要的意外)
 
	  
	服务器清单如下 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
						
							5 
						
							6 
						
							7 
						
							8 
						
							9 
					 | 
					
						
							
								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 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
					 | 
					
						
							
								sudo vim /etc/sysconfig/network 
							
								NETWORKING=yes 
							
								HOSTNAME=XXXX 
						 
					 | 
				 
			
		 
	 
 
	请将XXXX替换成对应服务器的Hostname 
	分别修改4台服务器的hosts 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
						
							5 
						
							6 
						
							7 
						
							8 
					 | 
					
						
							
								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机器上执行如下命令 
	
		
			
				
					| 
						 
							1 
						
							2 
					 | 
					
						
							
								cd ~/.ssh 
							
								ssh-keygen -t rsa -P '' -f  id_rsa 
						 
					 | 
				 
			
		 
	 
 
	按照提示信息回车即可 
	2)追加id_rsa.pub到授权的key里面去 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
					 | 
					
						
							
								sudo cat id_rsa.pub >>authorized_keys 
							
								  
							
								chmod 600 authorized_keys 
						 
					 | 
				 
			
		 
	 
 
	切记需要修改成600权限,不安全的权限设置,会让你不能使用RSA功能 
	3)修改SSH配置文件 
	
		
			
				
					| 
						 
							1 
					 | 
					
						
							
								sudo vim /etc/ssh/sshd_config 
						 
					 | 
				 
			
		 
	 
 
	修改以下内容 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
					 | 
					
						
							
								RSAAuthentication yes # 启用 RSA 认证 
							
								PubkeyAuthentication yes  # 启用公钥私钥配对认证方式 
							
								AuthorizedKeysFile ~/.ssh/authorized_keys # 公钥文件路径 
						 
					 | 
				 
			
		 
	 
 
	4)重启SSH服务 
	
		
			
				
					| 
						 
							1 
					 | 
					
						
							
								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操作 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
					 | 
					
						
							
								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上,解压缩,然后修改权限 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
						
							5 
					 | 
					
						
							
								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权限 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
					 | 
					
						
							
								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路径和日志保存路径 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
						
							5 
					 | 
					
						
							
								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才行,否则会出错。 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
						
							5 
						
							6 
						
							7 
						
							8 
					 | 
					
						
							
								<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文件 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
						
							5 
						
							6 
					 | 
					
						
							
								<configuration> 
							
								<property> 
							
								<name>dfs.replication</name> 
							
								<value>3</value> 
							
								</property> 
							
								</configuration> 
						 
					 | 
				 
			
		 
	 
 
	4)配置mapred-site.xml文件 
	
		
			
				
					| 
						 
							1 
						
							2 
						
							3 
						
							4 
						
							5 
						
							6 
					 | 
					
						
							
								<configuration> 
							
								<property> 
							
								<name>mapred.job.tracker</name> 
							
								<value>http://Master:9001</value> 
							
								</property> 
							
								</configuration> 
						 
					 | 
				 
			
		 
	 
 
	5)配置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 
	  
	  
      (责任编辑:IT) |