续我的上篇博文:https://mp.csdn.net/postedit/89164248。即Hadoop分布模式已经安装部署好。
本篇博文在上篇博文的基础上添加server4作为Datanode节点。
一、实验环境(rhel7.3版本)
1、selinux和firewalld状态为disabled
2、各主机信息如下:
主机 | ip |
---|---|
server1(NameNode、 Secondary Namenode、nfs网络文件系统的服务端) | 172.25.83.1 |
server2(Datanode、nfs网络文件系统的客户端) | 172.25.83.2 |
server3(Datanode、nfs网络文件系统的客户端) | 172.25.83.3 |
server4(Datanode、nfs网络文件系统的客户端) | 172.25.83.4 |
二、Hadoop分布模式中Datanode节点的增加
1、首先在上篇博文配置好的 nfs网络文件系统添加server4作为nfs网络文件系统的客户
端:
<1>在server4端:添加hadoop用户(指定的hadoop用户的uid为1004(与server1端hadoop用户保持一
致)),以生成需要挂载的目录/home/hadoop
#添加用户的操作,必须是root用户来执行,否则会报错
[root@server4 ~]# useradd -u 1004 hadoop
[root@server4 ~]# id hadoop
uid=1004(hadoop) gid=1004(hadoop) groups=1004(hadoop)
<2>在server4端:安装nfs-utils软件,以提供rpcbind服务,并启动rpcbind服务
#安装nfs-utils软件,启动rpcbind服务必须是root用户来操作,否则会报错
[root@server4 ~]# yum install nfs-utils -y
[root@server4 ~]# systemctl start rpcbind #rpcbind这个服务在安装完nfs-utils软件之后,会自动启动,所以这步可做也可不做。但是重启系统之后,这步必须做(因为重启系统之后,rpcbind服务就会关闭)
<3>在server4端(nfs网络文件系统的客户端):查看服务端IP共享的文件或目录,进行挂载,并进入共享目录
查看内容
查看服务端IP共享的文件或目录,进行挂载,必须由root用户来操作,否则会报错
[root@server4 ~]# showmount -e 172.25.83.1
Export list for 172.25.83.1:
/home/hadoop *
[root@server4 ~]# mount 172.25.83.1:/home/hadoop /home/hadoop
[root@server5 ~]# df
172.25.83.1:/home/hadoop 17811456 6520832 11290624 37% /home/hadoop
进入共享目录查看共享内容,可以由hadoop用户操作,因为挂载点是hadoop用户的家目录/home/hadoop目录
[root@server4 ~]# su - hadoop
[hadoop@server4 ~]$ ll
total 488256
lrwxrwxrwx 1 hadoop hadoop 12 Apr 4 11:50 hadoop -> hadoop-3.0.3
drwxr-xr-x 10 hadoop hadoop 188 Apr 10 12:06 hadoop-3.0.3
-rw-r--r-- 1 root root 314322972 Apr 4 11:47 hadoop-3.0.3.tar.gz
lrwxrwxrwx 1 hadoop hadoop 13 Apr 4 11:50 java -> jdk1.8.0_181/
drwxr-xr-x 7 hadoop hadoop 245 Jul 7 2018 jdk1.8.0_181
-rw-r--r-- 1 root root 185646832 Apr 4 11:47 jdk-8u181-linux-x64.tar.gz
2、在上篇博文配置好的hadoop中添加server4作为Datanode节点:
配置server1(Namenode):当然也可以在server4端/server2端/server3端进行配置,因为配置了nfs网络文件系统,所以
在任何一端进行操作均可以。
<1>设置ssh免密登陆(前提:安装ssh服务)—实际上因为server2端,server3端和server4端的/home/hadoop目录中的内容是通过 server1端共享出来的,因此,实际上已经实现了server1,server2,server3和server4之间的免密,而server1—>server1之间的免密是上篇博文部署伪分布模式时配置好的。
- 验证普通用户hadoop:server1,server2,server3和server4之间的免密
<2>修改配置文件,指定Datanode地址
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop/etc/hadoop
[hadoop@server1 hadoop]$ vim workers
172.25.83.2
172.25.83.3
172.25.83.4 #在原来的基础上添加server4的ip地址
配置server4(Datanode):
<1>启动Datanode节点(因为server4节点是在原来分布模式部署好的基础上添加的,所以最好不要动原来的配置,比如原来启动hdfs时,已经启动了Namenode节点和Datanode节点,这里在将server4添加作为Datanode节点时,最好不要再次启动hdfs,来间接启动server4端的Datanode节点,最好的方式就是在server4端直接启动Datanode节点)
[hadoop@server4 hadoop]$ sbin/hadoop-daemon.sh start datanode
WARNING: Use of this script to start HDFS daemons is deprecated.
WARNING: Attempting to execute replacement "hdfs --daemon start" instead.
#根据提示,我们应该使用bin/hdfs --daemon start datanode。不过这只是警告,事实上Datanode节点已经启动成功,我们利用下面的jps命令就可以看到
<2>jps命令查看java进程
[hadoop@server4 hadoop]$ jps
5303 DataNode
5335 Jps
刷新浏览器并查看
上面浏览器中的内容,也可以通过命令在终端中进行显示
[hadoop@server4 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server4 hadoop]$ bin/hdfs dfsadmin -report
Configured Capacity: 54716792832 (50.96 GB)
Present Capacity: 50818400256 (47.33 GB)
DFS Remaining: 50395455488 (46.93 GB)
DFS Used: 422944768 (403.35 MB)
DFS Used%: 0.83%
Replicated Blocks:
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Pending deletion blocks: 0
Erasure Coded Block Groups:
Low redundancy block groups: 0
Block groups with corrupt internal blocks: 0
Missing block groups: 0
Pending deletion blocks: 0
-------------------------------------------------
Live datanodes (3):
Name: 172.25.83.2:9866 (server2)
Hostname: server2
Decommission Status : Normal
Configured Capacity: 18238930944 (16.99 GB)
DFS Used: 106496 (104 KB)
Non DFS Used: 1275932672 (1.19 GB)
DFS Remaining: 16962891776 (15.80 GB)
DFS Used%: 0.00%
DFS Remaining%: 93.00%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Apr 10 14:50:49 CST 2019
Last Block Report: Wed Apr 10 11:37:40 CST 2019
Name: 172.25.83.3:9866 (server3)
Hostname: server3
Decommission Status : Normal
Configured Capacity: 18238930944 (16.99 GB)
DFS Used: 211468288 (201.67 MB)
Non DFS Used: 1328050176 (1.24 GB)
DFS Remaining: 16699412480 (15.55 GB)
DFS Used%: 1.16%
DFS Remaining%: 91.56%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Apr 10 14:50:49 CST 2019
Last Block Report: Wed Apr 10 14:24:46 CST 2019
Name: 172.25.83.4:9866 (server4)
Hostname: server4
Decommission Status : Normal
Configured Capacity: 18238930944 (16.99 GB)
DFS Used: 211369984 (201.58 MB)
Non DFS Used: 1294409728 (1.21 GB)
DFS Remaining: 16733151232 (15.58 GB)
DFS Used%: 1.16%
DFS Remaining%: 91.74%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Apr 10 14:50:50 CST 2019
Last Block Report: Wed Apr 10 14:40:35 CST 2019
<8>进行测试:上传文件并进行查看
[hadoop@server4 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server4 hadoop]$ dd if=/dev/zero of=bigfile bs=1M count=200
[hadoop@server4 hadoop]$ bin/hdfs dfs -put bigfile
刷新浏览器并查看
从图中我们可以看到1个block的大小是128M,那我们上传的bigfile文件的大小是200M,应该是2个block,我们来验证一下。
选择bigfile
从上图中我们可以看到:有两个block,即表示验证成功。