本文主要介绍通过ambari方式安装hadoop2.2完全分布式集群后的NameNode高可用性HA设置,以及hadoop分布式存储hdfs的管理界面和命令介绍。

通过ambari工具配置还是相对比较简单的。

以下是我的集群环境结够:

服务器

主机名

角色

外网ip

内网ip

角色说明及用途

宿主A

long-1.yc.com

hadoop client

192.168.200.61

172.23.1.10

hadoop客户端

虚机A-1

hda1.yc.com

namenode &  resourcemanager JournalNode & jobhistory &zookeeper

192.168.200.63

172.23.1.13

Namenode名称服务器;jobhistory 服务器(用于记录mapreduce的日志)

虚机A-2

hda2.yc.com

datanode &  nodemanager &zookeeper

192.168.200.64

172.23.1.14

datanode数据节点;zookeeper服务器集群(用于namenode 高可用的自动切换)

虚机A-3

hda3.yc.com

datanode &  nodemanager &JournalNode

192.168.200.65

172.23.1.15

JournalNode用于存放共享的NameNode元数据

宿主B

long-2.yc.com


192.168.200.62

172.23.1.11


虚机B-1

hdb1.yc.com

namenode &  resourcemanager &JournalNode

192.168.200.66

172.23.1.16

NameNode名称服务器(HA热备)

虚机B-2

hdb2.yc.com

datanode &  nodemanager &zookeeper

192.168.200.67

172.23.1.17

Nodemanager节点管理

虚机B-3

hdb3.yc.com

datanode  &nodemanager

192.168.200.68

172.23.1.18


以下是整个NameNode的HA配置过程。

0.NameNode HA高可用性设置。

在ambari的管理页面点击admin。选择第二项,开始配置namenode的高可用性。安照向导一步步操作。

wKioL1MZO4iDF5xYAAFZximte4Q397.jpg

0.1.设置NameNode Server ID

wKiom1MZO6_AfQFzAAKnbeJeCkQ475.jpg

0.2.分配主机角色。

wKioL1MZO4nxe9eiAAKnHUVxDJA956.jpg


wKiom1MZO6_xIKAMAAHjEqsFJfE607.jpg

0.3.HA配置回顾。

由于配置了NameNode HA ,所以原来的Secondary NameNode 不需要了,要删除掉。

wKioL1MZO4mh5AImAALOr7oWZsQ265.jpg


wKiom1MZO7DCkyg3AAH_E1IxGfk365.jpg

wKioL1MZO4riWsvdAAEAB-vAyf4399.jpg

手动执行命令,在NameNode上进入安全模式并创建检查点。

wKiom1MZO7DCySkFAAKavMO-M2w114.jpg

如上图,23步骤中的命令如下:

2 sudo su -l hdfs -c 'hdfs dfsadmin-safemode enter'

3 sudo su -l hdfs -c 'hdfs dfsadmin-saveNamespace'

0.4.执行配置安装。

wKioL1MZO4qhhdysAAE_dSCs37I676.jpg

wKiom1MZO7DimXF9AAFNF4LpXS8156.jpg

0.5.手动初始化JournalNodes

wKioL1MZO4rg6eh3AAG4pqw0bSQ772.jpg

上图中的第2步的命令:

2 sudo su -l hdfs -c 'hdfs namenode-initializeSharedEdits'


0.5.启动zookeepernamenode服务。


wKiom1MZO7HSjaQdAAEkik6LBJQ845.jpg

手动初始化NameNodeHA元数据。

wKioL1MZO4rgrON0AAJv3MtXiTQ673.jpg

上图中的第24步命令如下:

2 sudo su -l hdfs -c 'hdfs zkfc -formatZK'

4 sudo su -l hdfs -c 'hdfs namenode-bootstrapStandby'


wKiom1MZO7Gzejn_AABZgJcQ5t0956.jpg

0.6.执行DO,完成HA的安装。

wKioL1MZO4uTrTg2AAFhmS6_qVI254.jpg

wKiom1MZO7TjEhswAAP22bYjW7c777.jpg

此时已经完成了两台NameNode的高可用HA部署,常态下为一台namenodeactive)状态,另一台namenode为(standby)状态,当activenamenode出现故障,则两台namenode互换角色,原来standby状态的namenode升级为active状态继续提供服务。当那台出现故障的namenode恢复正常后自动进入standby的热备状态。

1.HDFS管理.

1.1.web界面管理hadoop的hdfs文件系统。

这里在ambari的管理界面,点击仪表盘页面上的HDFS链接里的更多选项,在下拉菜单中点击“NameNode UI”就可以打开处于archive状态HDFSweb页面,也可以直接在浏览器地址栏中输入active状态的namenode主机名冒号50070端口打开该页面。

例如:在浏览器中输入http://hdb1.yc.com:50070如下图中所示,当前hdb1.yc.comactive状态,处理来自客户端的读写请求并接受datanode的块报告信息。

wKioL1MZPOXApHHLAARnvjqqMIk183.jpg

点击“Browse the filesystem可以查看hdfs文件系统里的目录结够和文件信息。如下图:

wKioL1MZPlHSRI3ZAAQkxK1jzUM216.jpg

而此时另一台namenode 主机hda1.yc.comstandby状态,可以看到没有“Browse the filesystem”这个选项,正说明了standby状态是热备,不允许接受读写请求的操作。

wKioL1MZPniAcHEHAAOw2JwgMjU802.jpg

1.1.1.Map-reduce的运行状态界面

查看map-reduce信息,可以通过web界面来访问:

可以在ambariservices页面点击MapReduce后,再点击“QuickLinks”里的“JobHistoryUI”来打开。

wKioL1MZPpiRO_DkAAJ4iMgjmG8034.jpg

或者,直接在浏览器地址栏中输入jobhistory服务器的主机名加端口19888来打开mapreduce的管理页面。

例如:http://hda1.yc.com:19888/jobhistory

wKioL1MZPq-An2ZcAAL1ubwbaZ8501.jpg

1.2.Hadoop内部shell命令行管理。

1.2.1 利用hadoop内部shell命令查看hdfs状态。

命令格式:hadoop dfsadmin  -report

例如:

[root@hda1 ~]# hadoop dfsadmin  -report

DEPRECATED:Use of this script to execute hdfs command is deprecated.

Instead usethe hdfs command for it.


ConfiguredCapacity: 133453283328 (124.29 GB)

PresentCapacity: 75287371776 (70.12 GB)

DFSRemaining: 73128534016 (68.11 GB)

DFS Used:2158837760 (2.01 GB)

DFS Used%:2.87%

Underreplicated blocks: 32

Blocks withcorrupt replicas: 0

Missingblocks: 0


-------------------------------------------------

Datanodesavailable: 4 (4 total, 0 dead)


Livedatanodes:

Name:192.168.200.67:50010 (hdb2.yc.com)

Hostname:hdb2.yc.com

DecommissionStatus : Normal

ConfiguredCapacity: 33363320832 (31.07 GB)

DFS Used:396181504 (377.83 MB)

Non DFSUsed: 15577358336 (14.51 GB)

DFSRemaining: 17389780992 (16.20 GB)

DFS Used%:1.19%

DFS Remaining%:52.12%

Lastcontact: Mon Mar 03 02:03:31 CST 2014



Name:192.168.200.65:50010 (hda3.yc.com)

Hostname:hda3.yc.com

DecommissionStatus : Normal

ConfiguredCapacity: 33363320832 (31.07 GB)

DFS Used:641036288 (611.34 MB)

Non DFSUsed: 13612421120 (12.68 GB)

DFSRemaining: 19109863424 (17.80 GB)

DFS Used%:1.92%

DFSRemaining%: 57.28%

Lastcontact: Mon Mar 03 02:03:31 CST 2014



Name:192.168.200.68:50010 (hdb3.yc.com)

Hostname:hdb3.yc.com

DecommissionStatus : Normal

ConfiguredCapacity: 33363320832 (31.07 GB)

DFS Used:624066560 (595.16 MB)

Non DFSUsed: 15839141888 (14.75 GB)

DFSRemaining: 16900112384 (15.74 GB)

DFS Used%:1.87%

DFSRemaining%: 50.65%

Lastcontact: Mon Mar 03 02:03:31 CST 2014



Name:192.168.200.64:50010 (hda2.yc.com)

Hostname:hda2.yc.com

DecommissionStatus : Normal

ConfiguredCapacity: 33363320832 (31.07 GB)

DFS Used:497553408 (474.50 MB)

Non DFSUsed: 13137006592 (12.23 GB)

DFSRemaining: 19728760832 (18.37 GB)

DFS Used%:1.49%

DFSRemaining%: 59.13%

Lastcontact: Mon Mar 03 02:03:31 CST 2014


1.2.2.运行的进程查看

命令格式:jps  \\查看所有java进程。

例如:在名称节点服务器上会有NameNode进程,在数据节点服务器上会有DataNode进程。

[root@hda1 ~]# jps

25278 JournalNode

30805 Jps

27793 JobHistoryServer

27001 DFSZKFailoverController

8370 AmbariServer

26028 NameNode


[root@hdb2 ~]# jps

18513 DataNode

21774 Bootstrap

30852 Bootstrap

15618 HRegionServer

24671 QuorumPeerMain

21640 Jps


1.2.3 Hadoop的内部命令介绍。

所有的hadoop命令均由bin/hadoop脚本引发。不指定参数运行hadoop脚本会打印所有命令的描述。

用法:hadoop[--configconfdir][COMMAND][GENERIC_OPTIONS][COMMAND_OPTIONS]

Hadoop有一个选项解析框架用于解析一般的选项和运行类。

命令选项描述
--configconfdir覆盖缺省配置目录。缺省是${HADOOP_HOME}/conf
GENERIC_OPTIONS多个命令都支持的通用选项。
COMMAND
命令选项S各种各样的命令和它们的选项会在下面提到。这些命令被分为用户命令管理命令两组。

Hadoop命令常规选项

下面的选项被dfsadmin,fs,fsck和job支持。应用程序要实现Tool来支持常规选项。
GENERIC_OPTION描述

GENERIC_OPTION

描述

-conf  <configuration file>

指定应用程序的配置文件。

-D  <property=value>

为指定property指定值value

-fs  <local|namenode:port>

指定namenode

-jt  <local|jobtracker:port>

指定job tracker。只适用于job

-files  <逗号分隔的文件列表>

指定要拷贝到map reduce集群的文件的逗号分隔的列表。只适用于job

-libjars  <逗号分隔的jar列表>

指定要包含到classpath中的jar文件的逗号分隔的列表。只适用于job

-archives  <逗号分隔的archive列表>

指定要被解压到计算节点上的档案文件的逗号分割的列表。只适用于job

0.1.1.HDFS fs命令:

说明:hadoop fs –help   可以查看所有fs的命令参数。


hdfs文件系统fs操作命令及参数

命令释义

-ls <路径>      

查看指定路径的当前目录结构

-lsr <路径>    

递归查看指定路径的目录结构

-du <路径>      

统计目录下个文件大小

-dus <路径>    

汇总统计目录下文件(夹)大小

-count [-q] <路径>    

统计文件(夹)数量

-mv <源路径> <目的路径>        

移动

-cp <源路径> <目的路径>        

复制

-rm [-skipTrash]  <路径>        

删除文件/空白文件夹

-rmr  [-skipTrash] <路径>        

递归删除

-put <多个linux 上的文件> <hdfs 路径>  

上传文件

-copyFromLocal  <多个linux 上的文件> <hdfs 路径>        

从本地复制到hdfs

-moveFromLocal  <多个linux 上的文件> <hdfs 路径>        

从本地移动到hdfs

-getmerge <源路径> <linux 路径>      

合并到本地

-cat <hdfs 路径>        

查看文件内容

-text <hdfs 路径>      

查看文件内容

-copyToLocal  [-ignoreCrc] [-crc] [hdfs 源路径] [linux 目的路径]        

从hdfs复制到本地

-moveToLocal  [-crc] <hdfs 源路径> <linux目的路径>      

从hdfs移动到本地

-mkdir <hdfs 路径>      

创建空白文件夹

-setrep [-R]  [-w] <副本数> <路径>      

修改副本数量

-touchz <文件路径>      

创建空白文件

-stat [format]  <路径>  

显示文件统计信息

-tail [-f] <文件>      

查看文件尾部信息

-chmod [-R] <权限模式> [路径]  

修改权限

-chown [-R] [属主][:[属组]] 路径

修改属主

-chgrp [-R] 属组名称 路径

修改属组

-help [命令选项]        

帮助