在前两章中,我们分别实现了多虚拟机集群的搭建,Hadoop、JDK的安装以及在单机模式下的调试。在本章,我们将实现伪分布式,启动HDFS并运行WordCount示例程序。
一. 配置 core-site.xml 文件:
vim进入 /etc/hadoop/core-site.xml (sudo vim core-site.xml)中,使用修改模式,添加如下配置信息:

其中 主机名 为第一章第六节(虚拟机上搭建伪分布式Hadoop集群(一))中所修改的主机名称,端口号为9000。
二. 配置 hdfs-site.xml 文件:
与步骤一相似,使用vim进入 hdfs-site.xml文件中修改配置信息:
该配置文件用于指定HDFS副本数(在下图中设置为1,即设置为保留一份HDFS副本)

三. 启动集群:
在完成了上述两个步骤后,即可启动集群。启动集群共两步(1. 启动NameNode 2. 启动DataNode)
\\1. 格式化NameNode
bin/hdfs namenode -format
\\2. 启动NameNode
sbin/hadoop-daemon.sh start namenode
\\3. 启动DataNode
sbin/hadoop-daemon.sh start datanode
- 格式化NameNode:(第一次启动时格式化,以后就尽量少格式化)
(如果已经启动集群后再格式化NameNode,则会产生新的集群id,导致NameNode和DataNode的集群id不一致,则会出现DataNode无法启动的情况,所以在格式化NameNode时,需先删除data数据和log日志,再格式化NameNode。具体解决方法:Hadoop启动集群后使用JPS命令数据节点不显示解决方法)
-
启动NameNode:
-
启动DataNode:
-
使用JPS查看进程:
如果全部服务正常启动,则会显示三个服务进程(前面的进程编号不一样是正常的):
四. 使用Web查看端口:
Hadoop提供了一个Web端口页面,通过该页面可查看该集群的运行状态。由于在第一章中,我们已经将本机和虚拟机互相ping通了,所以可直接在本地的浏览器中查看。
在浏览器中输入 " 主机名:50070 " 即可进入集群的Web界面。(本文中的主机名为"hadoop101",实际操作中将其改为自己的主机名即可)

或者将主机名替换为虚拟机的IP地址,也同样可以进入集群的Web界面:

进入了集群的Web界面后即可查看集群的具体运行状态:

五. HDFS中创建文件夹:
在HDFS文件系统的根目录中创建新的路径(-p 表示创建多级目录):
bin/hdfs dfs -mkdir -p /user/ccnu/input
在Web界面中,点击 Utilities→Browse the file system 进入文件系统,然后输入刚刚创建的HDFS文件路径,可见该目录已成功创建。

与Linux类似,使用相同的命令,可以创建、删除、查看目录。

六. 将本地文件上传至集群中:
本文中,我们在本地创建了一个 wc.input 文件,并将其上传至上一步创建的集群路径中。
// bin/hdfs dfs -put (本地路径) (HDFS路径)
bin/hdfs

然后再看一下Web界面,可以发现集群中 /user/ccnu/input 下出现了刚才添加的文件。

点击该文件,可以将该文件从集群中下载下来。
七. 在HDFS上运行WordCount:
从集群中读取文件,然后再将生成的结果自动上传至集群的指定路径中(在下图中,文件路径为HDFS文件系统中的 /user/ccnu/input , 输出文件的路径为 /user/ccnu/output):

在集群的Web界面中可以看出,系统自动创建了output文件夹,并将运行结果存放于该文件夹中。




