在VMware虚拟机上分布式安装Hadoop架构(4)——简单运行测试

0、主要参考教程

1 、厦门大学数据库实验室
2、JeffreyZhou的博客园

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

接着在master节点和slave节点上利用jps命令查看可以看到

  • master节点:
    jps-NN
  • slave节点:
    jps-DN
    另外还需要在 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/ ,可以看到以下界面:
web-50070

2. 查看任务的运行情况

启动 YARN 后,可以通过 Web 界面查看任务的运行情况:http://localhost:8088/cluster ,如下图所示。
web-8088

4.3 HDFS测试

在此可以对HDFS进行一些简单测试,例如创建文件夹,上传文件等,在此就不一一列举了,网上一找一大堆。

要注意的是,HDFS是一个逻辑上的文件系统,而非物理磁盘上的。第一次接触的同学可能和我一样的迷惑点:创建完文件(夹)后,在本地磁盘是找不到的。是的,是这样的,HDFS和操作系统(此处为Linux)的文件系统(FS)根本不是同一层面的东西。。。
  利用命令行或者web界面可以看到HDFS的文件目录层次,这是逻辑显示,但在物理分布上,可能在不同的机器上,这就是分布式存储和计算的基础。逻辑上整体,物理上散布。
  还有,大家可能也注意到了,在命令行操作时,可能会出现三种不同的命令:

  1. hdfs dfs
  2. hadoop fs
  3. hadoop dfs

它们之间有一些不同:

hdfs dfs是常用命令,但只能操作HDFS系统,
hadoop fs可以用于不同的文件系统,包括但不限于本地文件系统和HDFS文件系统
hadoop dfs和hdfs dfs命令作用一样,但好像现在已经被deprecated了

4.4 WordCound测试

前面,在master节点安装配置好hadoop后,我们进行了一个小小的wordcount测试,当时是在本地文件系统中建立input文件夹,运行后的结果也保存在本地的output文件夹中,其中并没涉及到HDFS系统。

这次,我们在HDFS文件系统上再次运行一下WordCount程序。

  • 首先还是在本地生成一些文件,作为源数据,本例中所编写的数据如下图:

myinput

  • 创建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/*

在本例中,得到的结果如图:

wordcount

4.5 后记

在这一节中,主要是针对前面刚搭建好的hadoop分布式架构进行一下初步的测试,顺带熟悉一下简单的常用命令。

这样算是搭好了一个框架,当然,也仅仅是一个框架,至于怎么去往里填充内容,后面会慢慢学习。

猜你喜欢

转载自blog.csdn.net/qq_41059320/article/details/83051010