hadoop 三台主机环境搭建详细记录
自己搭建的操作记录,
太详细了,,感觉就有些罗嗦了。。。
下面开始:
分别安装三台centos系统:
系统安装完成后,使用的root用户搭建的没有创建其它用户;
1、修改主机名称:
vim /etc/sysconfig/network
![](http://images0.cnblogs.com/blog/573342/201310/29150943-a64be500f55e45609e1f343845c1c0b2.png)
注意:三台主机都需要修改 ,
可以修改成 hadoop1、hadoop2、hadoop3,
或修改成:master、slave1、slave2
或修改成:master.hadoop、slave1.hadoop、slave2.hadoop
修改完成后重启服务:service network restart
第一台主机:![]()
![](//images0.cnblogs.com/blog/573342/201310/29151030-b7e6d55b720647f78ebd20dfcced234f.png)
![](http://images0.cnblogs.com/blog/573342/201310/29151030-b7e6d55b720647f78ebd20dfcced234f.png)
第二台主机:![]()
![](//images0.cnblogs.com/blog/573342/201310/29151036-66644645d83b44f881fd0aa376b92fb1.png)
![](http://images0.cnblogs.com/blog/573342/201310/29151036-66644645d83b44f881fd0aa376b92fb1.png)
第三台主机:![]()
![](//images0.cnblogs.com/blog/573342/201310/29151041-e15781e66be442479007e7fc05ac42d2.png)
![](http://images0.cnblogs.com/blog/573342/201310/29151041-e15781e66be442479007e7fc05ac42d2.png)
2、修改hosts文件:vim /etc/hosts
![](http://images0.cnblogs.com/blog/573342/201310/29151052-8eff33b1d0f7480587f8001d48162953.png)
三台主机都需要修改
3、配置ssh ,三台主机免登录访问
开户ssh服务使用命令:service sshd start
或用setup 中找到service 将sshd打开(开机启动)
ssh-keygen -t rsa(或执行ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa )
在/root/.ssh路径下 cp id_rsa.pub authorized_keys(或cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
把各个节点的authorized_keys的内容收集到一起,拷贝加入到每个节点的此文件中,然后就可以免密码彼此ssh连入;
步骤如下:
用 ssh-keygen -t rsa命令分别在其他两台主机也执行后
![](http://images0.cnblogs.com/blog/573342/201310/29151211-ceb4e76af2a3414b9a4b33d976f00393.png)
收集id_rsa.pub里面的内容,放入生成的authorized_keys文件中
![](http://images0.cnblogs.com/blog/573342/201310/29151220-f3b032b432cf4e5e9242b209e7dd43c8.png)
保存修改后,这时就可以 ssh 当前主机了 :ssh localhost,或 ssh master(当前主机host文件)
![](http://images0.cnblogs.com/blog/573342/201310/29151232-13544e1145af449a9046804abc852cef.png)
ssh slave1 或 ssh slave2 连接主另外两主机,这里还需要输入密码的:
![](http://images0.cnblogs.com/blog/573342/201310/29151240-d3785d3c76474b50b8998bd087a82495.png)
这时只需要 再执行:
scp /root/.ssh/authorized_keys slave1:~/.ssh
scp /root/.ssh/authorized_keys slave2:~/.ssh
这是将 authorized_keys文件复制到另外 slave1 和 slave2 节点上;
![](http://images0.cnblogs.com/blog/573342/201310/29151249-7092899833f445a98cc345602c746cc3.png)
![](http://images0.cnblogs.com/blog/573342/201310/29151254-47abd854059643f4af56c52bdc93c21e.png)
4、安装JDK:
我放到了/opt/目录下面
首面赋权限: chmod u+x jdk-6u38-linux-x64.bin
然后执行安装:sudo -s ./jdk-6u38-linux-x64.bin
安装完成后,配置环境变量:修改 /etc/profile(全局变量,或修改vi ~/.bash_profile)添加:
export JAVA_HOME=/opt/jdk1.6.0_38
export PATH=$PATH:$JAVA_HOME/bin
然后使之生效:source /etc/profile
验证是否配置成功:which java
JDK安装配置验证成功后,这时只需要装 安装目录通过scp复制到 其他两台主机 并修改相同的环境变量即可:
待复制完成后,修改slave1主机的profile文件:
vim /etc/profile,添加:
export JAVA_HOME=/opt/jdk1.6.0_38
export PATH=$PATH:$JAVA_HOME/bin
最后使之生效:source /etc/profile
5、安装 hadoop:
a、修改环境变量:/opt/hadoop-1.0.2/conf/hadoop-env.sh文件
![](http://images0.cnblogs.com/blog/573342/201310/29151341-c51619c37cb3415f9a28d59da3d0c8ba.png)
b、修改/opt/hadoop-1.0.2/conf/目录下面的 master和 slave两个文件 :
master文件内修改为 做为主节点的 master(hosts文件件内主IP对应的名子)
slave文件内,为两个从节点的名子
![](http://images0.cnblogs.com/blog/573342/201310/29151429-9ce5ab07ff41496084e917e1a8fe5a07.png)
![](http://images0.cnblogs.com/blog/573342/201310/29151435-c2ad2cc2c22a49ff8ed7ff0c96314037.png)
c、修改core-site.xml添加如下内容:
![](http://images0.cnblogs.com/blog/573342/201310/29151443-3639c2a49e50450785ad86af5dd4482e.png)
d、修改hfds-site.xml文件:
![](http://images0.cnblogs.com/blog/573342/201310/29151451-0d5992b837aa4fc28ae4f06012052766.png)
e、修改 mapred-site.xml
![](http://images0.cnblogs.com/blog/573342/201310/29151459-0b4a8c3104304b8da999cacb30cddbd5.png)
f、把Hadoop的安装路径添加到"/etc/profile"中,修改"/etc/profile"文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效(注意三台主机都需要):
# set hadoop path
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
修改完成后,使之生效:source /etc/profile
![](http://images0.cnblogs.com/blog/573342/201310/29151615-914ee63e5dcd466883a8a3e80e5ae047.png)
g、在/opt/目录下面创建 cloud文件夹,及其下面几个目录(注意三台主机都需要):
![](http://images0.cnblogs.com/blog/573342/201310/29151620-57688023b5184c7eb733b5086fe19e42.png)
h、将配置好的hadoop通过scp复制到其他两个主机,在相同的目录:
scp -r /opt/hadoop slave1:/opt/
scp -r /opt/hadoop slave2:/opt/
![](http://images0.cnblogs.com/blog/573342/201310/29151627-3bc40fc8b28442fbb60e902ec2a45ecd.png)
至此 hadoop 配置完成了
6、格式化 namenode : hadoop namenode -format
![](http://images0.cnblogs.com/blog/573342/201310/29151640-ada037c4d69d43b7983e5ad961acbf6a.png)
这里注意:主机名 (hostname)一定要与 hosts表里面配置的 ip对应的主机名相同,否则格式化时,会报错,提示找不到主机:STARTUP_MSG: host = java.net.UnknownHostException: master.hadoop: master.hadoop ;
SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: master.hadoop : master.hadoop
另:停到三个节点的防火墙 service iptables stop;
7、启动 start-all.sh
![](http://images0.cnblogs.com/blog/573342/201310/29151651-0e26b7801b6e4701b73c634fb8d50f64.png)
8、验证hadoop
(1)验证方法一:用"jps"命令
(2)验证方式二:用"hadoop dfsadmin -report"
1)访问"http//:master:50030"
2)访问"http//:master:50070"