1.准备三台虚拟机
centos6.5 192.168.20.171 node1 NameNode节点
centos6.5 192.168.20.172 node2 DataNode节点、SecondaryNameNode(必须和NameNode不在一台机器上)
centos6.5 192.168.20.173 node3 DataNode节点
由于Hadoop是由java开发的,所以请大家一开始就把jdk装好,务必关闭防火墙service iptables stop。
2.分别修改三台虚拟机主机名
vi /etc/sysconfig/network
分别修改HOSTNAME为
HOSTNAME=node1
HOSTNAME=node2
HOSTNAME=node3
保存退出,reboot重启服务器
3.分别修改三台虚拟机hosts文件
vi /etc/hosts
都添加一下内容
192.168.20.171 node1
192.168.20.172 node2
192.168.20.173 node3
保存退出
4.在node1上进行配置操作
cd /home
tar -zxvf hadoop-1.2.1-bin.tar.gz
cd hadoop-1.2.1/cd hadoop-1.2.1/
4.1 配置NameNode和hadoop工作目录
vi core-site.xml
在configuration标签中添加property内容:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-1.2.1</value>
</property>
</configuration>
第一个property配置的是NameNode信息,即NameNode所在机器以及端口
第一个property配置hadoop工作目录
4.2 配置副本数
vi hdfs-site.xml
在configuration标签中添加property内容(不配置的时候默认是3):
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
4.3 配置DataNode
vi slaves
删除localhost并添加以下节点配置:
node2
node3
4.3 配置SecondaryNameNode
vi masters
删除localhost并添加以下节点配置:
node2
4.4 配置JAVA_HOME
vi hadoop-env.sh
将export JAVA_HOME之前的注释去掉,修改jdk路径为:
export JAVA_HOME=/usr/java/jdk1.7.0_51
保存退出
5.配置从node1到node2和node1到node3免密码登录
由于DN、NN、SNN都是java进程都需要启动,集群的成功需要每个节点的进程都启动,
为了方便快速的能够启动hdfs各节点进程,我们配置ssh免密码登录后,hdfs可以启动所有节点进程,这样不需要每个节点单独启动了。
5.1设置本地ssh免密码登录
三个node上都执行:
ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa(生成私钥和公钥,id_dsa可随意命名)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys(将公钥内容追加到authorized_keys中)
5.2拷贝node1上的公钥id_dsa.pub到node2和node3
在node1上:
将公钥拷贝到node2和node3的root目录
cd /root/.ssh
scp id_dsa.pub root@node2:~
scp id_dsa.pub root@node3:~
在node2和node3上:
将root目录中node1传过来的公钥追加到node2和node3的authorized_keys文件中,node2和node3分别执行:
cd ~
cat id_dsa.pub >> ~/.ssh/authorized_keys
可以使用
cd .ssh/
more authorized_keys
检查一下node1的id_dsa.pub是否已经追加成功
5.3免密码登录测试
在node1上执行ssh node2和ssh node3,应该已经可以免密码登陆了。
6.启动hadoop
6.1将node1的hadoop压缩包拷贝到node2和node3
scp -r /home/hadoop-1.2.1-bin.tar.gz root@node2:/home/
scp -r /home/hadoop-1.2.1-bin.tar.gz root@node3:/home/
6.2在node2和node3上解压
cd /home
tar -zxvf hadoop-1.2.1-bin.tar.gz
6.3将node的配置文件全部拷贝到node2和node3(保证各节点hadoop一模一样)
在node1上面:
cd /home/hadoop-1.2.1/conf/
scp ./* root@node2:/home/hadoop-1.2.1/conf
scp ./* root@node3:/home/hadoop-1.2.1/conf
6.4进行格式化
在node1上执行:
cd /home/hadoop-1.2.1/bin
格式化 ./hadoop namenode -format
启动hdfs ./start-dfs.sh
6.5查看各机器上的hdfs节点状态
[root@node1 bin]# jps
4471 Jps
4337 NameNode
[root@node2 home]# jps
4099 Jps
4041 SecondaryNameNode
3958 DataNode
[root@node3 home]# jps
3732 DataNode
3796 Jps
从上面可以看出:
node1上有一个NameNode进程
node2上有一个DataNode进程和一个SecondaryNameNode进程
node3上有一个DataNode进程
6.6关闭hdfs
cd /home/hadoop-1.2.1/bin
./stop-dfs.sh
7.通过浏览器访问hdfs
修改C:\Windows\System32\drivers\etc\hosts,添加
192.168.20.171 node1
192.168.20.172 node2
192.168.20.173 node3
访问http://node1:50070/dfshealth.jsp
可以查看hdfs文件系统,以及健康状态等信息。
至此,hdfs安装配置结束。