环境配置:
操作系统:redhat6.5 iptables selinux off
Server1为主节点 172.25.45.1 (上一篇博客已经配置成功)
Server2和server3为子节点 172.25.45.2 172.25.45.3
hadoop-2.7.3版本
server1停掉服务并切换到超级用户
[hadoop@server1 hadoop-2.7.3]$ sbin/stop-yarn.sh
[hadoop@server1 hadoop-2.7.3]$ sbin/stop-dfs.sh
Hadoop集群:
在server1,server2和servre3端安装nfs-utils服务:
[root@server1 ~]# yum install -y nfs-utils
编辑文件:
[root@server1 ~]# vim /etc/exports
开启服务:
[root@server1 ~]# /etc/init.d/rpcbind start ###启动服务
[root@server1 ~]# /etc/init.d/nfs start
刷新挂载:
[root@server1 ~]# showmount -e 172.25.45.1
同样在server2和server3端安装服务并建立用户,之后开启服务,将servre1端的目录挂载:
[root@server2 ~]# yum install -y nfs-utils ##安装nfs
[root@server2 ~]# /etc/init.d/rpcbind start ###启动服务
[root@server2 ~]# /etc/init.d/nfs start
[root@server2 ~]# useradd -u 800 hadoop ##建立用户
[root@server2 ~]# mount 172.25.45.1:/home/hadoop/ /home/hadoop/ ###挂载目录,进行同步
[root@server2 ~]# su - hadoop
[hadoop@server2 ~]$ ls ##发现server1hadoop用户家目录文件已经同步过来了
ssh测试: (注意:hadoop用户下不需要密码测试通过)
[hadoop@server1 ~]$ ssh 172.25.45.2
[hadoop@server1 ~]$ ssh 172.25.45.3
sevrer1端切换到hadoop用户并编辑文件:
[hadoop@server1 ~]$ ln -s hadoop-2.7.3 hadoop
[hadoop@server1 ~]$ cd hadoop/etc/hadoop/
[hadoop@server1 hadoop]$ vim hdfs-site.xml
设定从设备:
[hadoop@server1 hadoop]$ vim slaves
重新进行服务初始化:
[hadoop@server1 ~]$ cd hadoop
[hadoop@server1 hadoop]$ bin/hdfs namenode -format
开启服务:
[hadoop@server1 hadoop]$ sbin/start-dfs.sh
查看java进程:
[hadoop@server1 hadoop]$ jps
在server2和server3上:
测试:重新初始化后重新建立共享目录
[hadoop@server1 hadoop]$ bin/hdfs dfs -mkdir /user
[hadoop@server1 hadoop]$ bin/hdfs dfs -mkdir /user/hadoop
[hadoop@server1 hadoop]$ bin/hdfs dfs -put input/
[hadoop@server1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
wordcount input output
查看:
[hadoop@server1 hadoop]$ bin/hdfs dfs -cat output/*
节点的添加
要给集群添加节点server4,需要在server4端同样地安装nsf-utils,开启服务,建立用户并挂载目录:
[root@server4 ~]# yum install nfs-utils -y
[root@server4 ~]# /etc/init.d/rpcbind start
[root@server4 ~]# /etc/init.d/nfs start
[root@server4 ~]# useradd -u 800 hadoop
[root@server4 ~]# mount 172.25.45.1:/home/hadoop/ /home/hadoop/
切换到hadoop用户并编辑文件slave:
[hadoop@server4 ~]$ cd hadoop/etc/hadoop/
[hadoop@server4 hadoop]$ vim slaves
开启数据节点:
[hadoop@server4 ~]$ cd hadoop
[hadoop@server4 hadoop]$ sbin/hadoop-daemon.sh start datanode
效果查看:成功添加server4
[hadoop@server4 hadoop]$ bin/hdfs dfsadmin -report
也可以在浏览器中查看节点
节点删除
为了测试效果,在server1端将一个文件加到文件系统中:
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server1 hadoop]$ dd if=/dev/zero of=bigfile bs=1M count=500
[hadoop@server1 hadoop]$ bin/hdfs dfs -put bigfile
浏览器查看文件成功加入到文件系统:
查看节点信息:
可以发现server3端存有571.29M的数据
[hadoop@server1 hadoop]$ bin/hdfs dfsadmin -report
[hadoop@server1 ~]$ vim hadoop/etc/hadoop/hdfs-site.xml
[hadoop@server1 ~]$ vim /home/hadoop/hadoop/etc/hadoop/exclude-hosts#指定SecondaryNameNode节点的主机名或IP地址
编辑slave文件将sevrer4删除:
[hadoop@server1 ~]$ vim hadoop/etc/hadoop/slaves
刷新:
[hadoop@server1 hadoop]$ bin/hdfs dfsadmin -refreshNodes
查看集群状态:
[hadoop@server1 hadoop]$ bin/hdfs dfsadmin -report
迁移完成,并且server4的数据转移到server3上:
之后在server3端停掉服务:
[hadoop@server3 hadoop]$ sbin/hadoop-daemon.sh stop datanode