如何解决迁移Hadoop0.20.2问题

发布时间:2021-12-06 11:18:57 作者:小新
来源:亿速云 阅读:111

这篇文章将为大家详细讲解有关如何解决迁移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. laravel数据迁移问题
  2. 如何解决Qt中代码迁移的乱码问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

hadoop0.20.2

上一篇:免费UML建模工具有哪些

下一篇:UML类图依赖关系和关联关系的区别有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》