7. Hadoop 2.x 中高级特性

1. HDFS Federation架构介绍:

1. HDFS介绍:

HDFS包含两层,分别是Namespace (命名空间)和 Block Storage service (块存储服务)。

HDFS

Block Storage Service包含两部分:

(1)Block Management (Namenode实现)

(2)Storage (Datanode实现)

传统的HDFS一般使用一个Namespace来管理整个集群,而且由一个namenode来管理这个namespace。HDFS Federation可以突破这个限制,可以支持多个namenodes/namespaces

2. HDFS Federation:

为了水平扩展name service , federation使用多个独立的 Namenodes/Namespaces。

HDFS Federation

(1)Block pool

Block Pool是属于一个namespace的一组块,datanode存储集群中所有block pools的块。

(2)Cluster ID:

集群中的每一个节点都分配一个ClusterID。

3. 使用HDFS Federation的原因:

(1)NameSpace可扩展性:HDFS的存储可以通过增加datanode节点来随意扩展。但是namenode保存元数据,如果存储的数据过大、或者集群中存在很多小文件,增加namenode可以很好地解决问题。

(2)性能:文件系统操作吞吐量(磁盘IO)是以往HDFS的瓶颈,对HDFS的访问和修改都需要经过namenode。

(3)隔离:在多用户环境下,一个namenode无法提供隔离,如果一个应用的负载过大的话,可能会影响其他关键任务。在多namenode节点环境下,不同的应用和用户可以被隔离到不同的namespace上。


2. HDFS Federation 环境配置:

1. 资源安装规划:

HDFS Federation只涉及到Namenode和Datanode,所以只考虑这2个角色的规划即可。在senior01上安装nn1,在senior02上安装nn2,同时在三台主机上安装datanode。

2. Federation配置:

(1). 配置hdfs-site.xml:

根据官网的配置样例,配置hdfs-site.xml。配置dfs.nameservices 的 ns1和ns2。

(2). 配置core-site.xml :

在分布式集群配置中,因为只有一个namenode,所以所有节点的fs.defaultFS配置项都是一致的(即namenode节点的URL)。但是在配置HDFS Federation时,由于有多个namenode,所以这些namenode的该项的访问地址都应该是自己

(3) 同步配置到其他节点:

同步配置到其他节点:

scp -r hadoop-2.5.0 natty@hadoop-senior02.pmpa.com:/opt/modules/

scp -r hadoop-2.5.0 natty@hadoop-senior03.pmpa.com:/opt/modules/

另外,由于senior02也是namenode,需要修改senior02的配置文件core-site.xml的fs.defaultFS配置项。

(4)在每一个Namenode节点格式化Namenode。

使用下面命令来格式化(需要在2个namenode上格式化):

$ bin/hdfs namenode -format -clusterId hdfs-cluster

这块需要注意,在格式化时候,指定了一个clusterId。在两个namenode上使用同样的语句进行格式化时,也就表明为这2个namenode指定了同一个clusterId,这样就表示2个namenode是属于同一个联盟的(Federation在这里体现)

(5)启动hdfs:

$ sbin/start-dfs.sh

(6)测试HDFS Federation:

在启动了2个hdfs federation后,我们访问50070端口,可以发现2个active 状态的 namenode:

namenode1  Active


namenode2  Active

在senior01上传一个文件:

$ bin/hdfs dfs -put sort.txt /

这时候,我们发现,在senior01上可以查看到这个文件,但是在senior02上查不到。

senior01 访问地址
senior02 访问地址

我们在第三台服务器senior03上 使用命令查看文件时能查看到sort.txt:

$ bin/hdfs dfs -ls /

因为,senior03的core-site.xml的配置项fs.defaultFS 的值为:hdfs://hadoop-senior01.pmpa.com:8020 。 如果修改这个值为hdfs://hadoop-senior02.pmpa.com:8020,在测试结果:

$ bin/hdfs dfs -ls /

这时候再查询时,已经查不到这个文件了。这其实说明HDFS Federation是配置了2个访问入口[ns1]和[ns2],他们之间是不重合的。


3. 三种启动方式:

(1)单独启动:

启动namenode,datanode:

$ sbin/hadoop-daemon.sh start namenode

$ sbin/hadoop-daemon.sh start datanode

启动Resource Manager, Node Manager : 

$ sbin/yarn-daemon.sh start resourcemanager

$ sbin/yarn-daemon.sh start nodemanager

(2)按模块启动:

$ sbin/start-dfs.sh

$ sbin/start-yarn.sh

(3)全部启动:

$ sbin/start-all.sh


4.常用工具distcp和hftp

Distcp工具是使用运行在Yarn的HDFS集群内和集群间的数据拷贝工具,使用MapReduce开发。该工具往往应用于同版本hadoop不同集群间的数据的复制。那么hftp主要应用于不同版本的hadoop集群间的数据拷贝。

下面以上边实验的基础来实验这2个命令。我在hadoop-senior01(namenode1)上上传2个文件,分别是/sort.txt  和 /input/wordcount.txt,下面分别利用 distcp和hftp来将这2个文件分别拷贝到hadoop-senior02(namenode2)上。

1. distcp :

这里需要特别注意,因为distcp是使用mapreduce开发的,运行在yarn上,所以运行这个命令的时候,一定要保证yarn是在正常运行的。我的yarn的主节点(Resource Manager)运行在senior02上,所以需要在senior02上运行 sbin/start-yarn.sh来启动yarn。

之后运行distcp命令即可拷贝:

$ bin/hadoop distcp hdfs://hadoop-senior01.pmpa.com:8020/sort.txt hdfs://hadoop-senior02.pmpa.com:8020/

成功后,我们可以在namenode02上也看到这个文件了。

2.hftp:

上边提过hftp类似于网络层的ftp协议。使用hftp可以实现不同版本hadoop间的数据拷贝,例如从0.x版本拷贝到2.x版本。在使用hftp协议时候,应该使用50070端口(Web访问协议),拷贝到hdfs协议(8020 rpc端口)。

如下边语句运行:

$ bin/hadoop distcp -i hftp://hadoop-senior01.pmpa.com:50070/input/wordcount.txt hdfs://hadoop-senior02.pmpa.com:8020/input/wordcount.txt

其中-i参数的含义:忽略错误。


5. MapReduce执行流程:

XXX


6. 使用MapReduce实现二次排序:

XXX

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容