社区编辑申请
注册/登录
经验总结 迁移Hadoop0.20.2问题详解
开发 架构 Hadoop
Hadoop你是否熟悉,那么Hadoop0.20.2呢,这里向大家介绍一下迁移到Hadoop0.20.2后的一些感想,欢迎大家一起来学习Hadoop0.20.2方面的知识。

本节向大家介绍一下有关Hadoop0.20.2方面的知识,迁移到Hadoop0.20.2后的一些感想,相信通过本节的介绍大家对Hadoop0.20.2有更深刻的认识,让我们一起来关注Hadoop0.20.2吧。
------------------------------------------------

1.问题:
离Hadoop0.20.2的发布也有三个月了,平时一直在用http://www.cloudera.com/提供的一个Hadoop版本,它也是基于Hadoop0.18.3开发的,因为它的一个比较稳定的版本。但是最近在用hypertable0.9.2.7的时候发现我本地jni调用老是会出现HyperspaceCOMMalreadycommected,查了一下原因,是hyperspace的COMM被占用,连接出错,网上找了一下,作者也说有这个问题,还说什么修改一下也不是很难。看了一下它的源代码,是socket连接抛出来的,要改的话要修改hyperspace模块的代码,由于hyperspace底层是用oracle的berkeleydb的,对它也不是很熟悉,所以没去改了,想直接升级到0.9.3.1,看它有没有解决这个问题,但是让我失望的是它还是没有解决这个问题,到是在它的thrift端做了很多改动,而且把对hypertable表的TableSplit也加入了它的thrift服务端中,也正是我想要的,呵呵,这样也可以绕过前面的hyperspace的问题,因为它在thrift的服务端只生成了一个HypertableClient,这样就不会出现COMMconnected的问题了,而且对它的Cell也做了比较大的改动,用了***的Hadoop0.20.2。没办法,要升就一起升吧,Hadoop0.18.3->Hadoop0.20.2;hypertable0.9.2.7->hypertable0.9.3.1,原来的TableInputFomat和TableOutputFormat看来都要做修改了,于是就有了下面的这些感想。

2.Hadoop0.20.2的一些变化
新的版本不管从目录结构和API上都有了比较大的变化,不管从0.18到0.19,还是从0.19到0.20目录结构都发生了很大的变化,***感觉就是模块化的意识越来越强了,而且看起来也更清晰了。

2.1目录结构的变化
主要有三个目录,core,hdfs,mapred。
◆主要是把原来共用的功能都提取到了core中,其中有conf,fs,io,ipc,net,record等。还加入了类似于unix目录的权限功能。
◆把hdfs单独放入了一个目录中,而且把hdfs的配置文件也提取了出来,叫hdfs-default.xml,其中hdfs目录又分了protocol,提供了一些Client端的通讯协议,还有server和tools目录,其中server目录又分成了balancer,common,datanode,namenode,protocol,这里的protocol目录中提供了DataNode和NameNode的通讯协议,还有DataNode之间的通讯协议等。
◆把mapred也独立出来,而且也把mapred的配置文件也提取出来,放入了mapred-default.xml中,它也有两个子目录,一个是mapred,其中放了一些mapreduce的核心类,还有一些Deprecated的类,用于向后兼容,不过一般都不提倡用这些接口和类了。另一个目录是mapreduce目录,这里有一些对外的抽象类和接口,用于进行根据自己的需要进行扩展,在这个目录中有一个叫lib的目录,它提供了一些框架提供的常用的input,output,map,reduce方法。

2.2API的变化
在Hadoop0.20.2中,API的变化也是很大的,主要把一些接口变成了抽象类,以此在提高可扩展性,进行了一些重构,变化还是满大的。下面举一个例子来说明这里的变化。
2.2.1Hadoop的一个example
这是Hadoop中的一个WordCount的例子,从中你可以发现Map和Reduce的接口变化,还有JobClient的变化。

3.Hypertable0.9.3.1的一些变化
主要感觉它的thrift的java客户端变化很大。为了支持mapreduce,很多东西都集成到了thrift服务端。加入了MapReduceconnector,Hyperspace的replication,还有DUMPTABLE等。在它的thrift的客户端中加入了InputFormat和OutputFormat,还有TableSplit,可以用来对Hypertable中的表进行Key和Value对的读取,还是很方便的。但是它没有对TableSplit后的range_location进行处理,只是用了“localhost“来进行Host的连接,不知道是为什么?
看来要在Hypertable中使用kfs还是要进行源代码的编译还有kfs的动态库。本节关于Hadoop0.20.2的相关内容介绍到这里。

【编辑推荐】

  1. 专家推荐 Hadoop0.20.2集群配置指导手册
  2. Hadoop0.20.2集群配置入门指导手册
  3. Hadoop文件系统如何快速安装?
  4. Hadoop集群搭建过程中相关环境配置详解
  5. Hadoop完全分布模式安装实现详解

 

 

责任编辑:佚名 来源: csdn.net
相关推荐

2020-11-03 08:36:08

Hadoop

2021-06-09 17:51:12

2010-06-07 16:34:07

Hadoop0.20.

2010-06-04 17:34:13

Hadoop0.20.

2010-06-07 15:33:42

Hadoop0.20更

2010-06-07 15:21:00

hadoop-0.20

2016-12-13 16:36:15

Hadoopwindows

2013-12-05 09:45:04

HadoopHadoop架构图

2014-01-07 11:24:45

2012-09-18 09:55:44

2010-06-03 12:57:06

2013-05-27 14:13:51

2012-06-25 10:30:06

2013-06-08 14:34:42

Hadoop 2.0

2017-09-18 18:31:08

Hadoop

2016-12-30 11:10:32

Hadoop开发JVM

2019-07-10 09:21:36

大数据数据库Hadoop

2012-06-21 09:56:50

2013-08-23 10:42:03

2013-08-23 10:18:06

同话题下的热门内容

该不该将单体架构迁移到微服务?生成性对抗网络——数据生成的高级解决方案SpringBoot对Spring MVC都做了哪些事?(四)软件架构中的跨层缓存技术人生 | 如何设定业务目标SpringBoot:如何优雅地进行响应数据封装、异常处理?为什么策略梯度法在协作性MARL中如此高效?终于有人把灰度发布架构设计讲明白了

编辑推荐

终于有人把Elasticsearch原理讲透了!花了一个星期,我终于把RPC框架整明白了!拜托!面试不要再问我Spring Cloud底层原理陌陌基于K8s和Docker容器管理平台的架构实践收藏 | 第一次有人把“分布式事务”讲的这么简单明了
我收藏的内容
点赞
收藏

AISummit人工智能大会