0、主要参考教程
4.1 启动hadoop集群
在前3篇文章中,依次安装配置了一个master节点和3个slave节点,其实slave节点配置好后基本就不需要再关注了,对于目前可以看到的学习过程来说,以后基本都只需要在master节点上进行操作就行了。
首次启动需要先在 Master 节点执行 NameNode 的格式化:
$ hdfs namenode -format # 首次运行需要执行初始化,之后不需要
接着可以启动 hadoop 了,启动需要在 Master 节点上进行:
$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver
mr-jobhistory-daemon.sh start historyserver语句是用来实现web查看作用的历史运行情况,在启动hdfs和yarn后,需要手动启动该进程。同样,在停止hdfs和yarn后,也需要手动停止该进程,语句为:
mr-jobhistory-daemon.sh stop historyserver
接着在master节点和slave节点上利用jps
命令查看可以看到
- master节点:
- slave节点:
另外还需要在 Master 节点上通过命令 hdfs dfsadmin -report 查看 DataNode 是否正常启动,如果 Live datanodes 不为 0 ,则说明集群启动成功。
关闭Hadoop
在上面的启动过程中我们可以看到,先启动HDFS,再启动YARN,最后启动MapReduce的顺序。
那么,在关闭的时候,就按照镜像的顺序,也很好理解,就像打开一层又一层的收纳盒一样,最里面的当然最后打开,又最先关闭。
$ mr-jobhistory-daemon.sh stop historyserver
$ stop-yarn.sh
$ stop-dfs.sh
4.2 Web界面查看
1. 查看 DataNode 和 NameNode 的状态
在浏览器界面输入:http://master:50070/ ,可以看到以下界面:
2. 查看任务的运行情况
启动 YARN 后,可以通过 Web 界面查看任务的运行情况:http://localhost:8088/cluster ,如下图所示。
4.3 HDFS测试
在此可以对HDFS进行一些简单测试,例如创建文件夹,上传文件等,在此就不一一列举了,网上一找一大堆。
要注意的是,HDFS是一个逻辑上的文件系统,而非物理磁盘上的。第一次接触的同学可能和我一样的迷惑点:创建完文件(夹)后,在本地磁盘是找不到的。是的,是这样的,HDFS和操作系统(此处为Linux)的文件系统(FS)根本不是同一层面的东西。。。
利用命令行或者web界面可以看到HDFS的文件目录层次,这是逻辑显示,但在物理分布上,可能在不同的机器上,这就是分布式存储和计算的基础。逻辑上整体,物理上散布。
还有,大家可能也注意到了,在命令行操作时,可能会出现三种不同的命令:
- hdfs dfs
- hadoop fs
- hadoop dfs
它们之间有一些不同:
hdfs dfs
是常用命令,但只能操作HDFS系统,
hadoop fs
可以用于不同的文件系统,包括但不限于本地文件系统和HDFS文件系统
hadoop dfs
和hdfs dfs命令作用一样,但好像现在已经被deprecated了
4.4 WordCound测试
前面,在master节点安装配置好hadoop后,我们进行了一个小小的wordcount测试,当时是在本地文件系统中建立input
文件夹,运行后的结果也保存在本地的output
文件夹中,其中并没涉及到HDFS系统。
这次,我们在HDFS文件系统上再次运行一下WordCount程序。
- 首先还是在本地生成一些文件,作为源数据,本例中所编写的数据如下图:
- 创建HDFS上的用户目录,并将本地文件上传至HDFS中:
# 注意,是/user.而不是/usr
$ hdfs dfs -mkdir -p /user/hadoop
# hdfs中的目录 /user/hadoop/input
$ hdfs dfs -mkdir input
# 将本地文件夹myinput中的word*.txt上传至 hdfs中的/uset/hadoop/input/中
$ hdfs dfs -put *.txt input
可以通过上面说的web界面查看datanode的状态,看是否上传成功,也可以通过命令查看
hdfs dfs -ls input/
- 执行Wordcount程序
# 本例中的HADOOP_HOME是/usr/local/hadoop
$ hadoop jar HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-example-2.7.6.jar wordcount input output
注:在运行之前,要先建立input文件夹,但不能有output文件夹。hadoop不会覆盖文件,会报错。若要二次运行,需先删除output文件夹:
$ hdfs dfs -rm -r output
- 查看运行结果
$ hdfs dfs -cat output/*
在本例中,得到的结果如图:
4.5 后记
在这一节中,主要是针对前面刚搭建好的hadoop分布式架构进行一下初步的测试,顺带熟悉一下简单的常用命令。
这样算是搭好了一个框架,当然,也仅仅是一个框架,至于怎么去往里填充内容,后面会慢慢学习。