`
wangwei3
  • 浏览: 117927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop第二步:将hadoop的HDFS替换成KFS

阅读更多
原创文章:转载请注明出处http://wangwei3.iteye.com/blog/895867
最近需要把hadoop的HDFS替换成KFS。
其实具体性能的差异我还没有测试过。不过理论上说,C+写的KFS应该在性能上比HDFS更胜一筹。
关于底层的FS的支持。hadoop的扩展性着实不错。KFS便是其中一种
那么如何配置呢?
首先KFS必须先部署起来(具体过程不讲解了)。测试OK后
我们继续hadoop
一。修改core-site.xml,添加以下语句:
<property>
  <name>fs.kfs.impl</name>
  <value>org.apache.hadoop.fs.kfs.KosmosFileSystem</value>
  <description>The FileSystem for kfs: uris.</description>
</property>

<property>
  <name>fs.default.name</name>
  <value>kfs://<server:port></value> 
</property>

<property>
  <name>fs.kfs.metaServerHost</name>
  <value><server></value>
  <description>The location of the KFS meta server.</description>
</property>

<property>
  <name>fs.kfs.metaServerPort</name>
  <value><port></value>
  <description>The location of the meta server's port.</description>
</property>



<server:port>:填写KFS系统的服务 例如 :kfs://192.168.1.1:20000
<server>:填写KFS系统的IP 例如:192.168.1.1
<port>:填写KFS系统的端口 例如:20000

二。hadoop中已有kfs的jar包,但是可能KFS和hadoop的jar包版本不一样。所以一定要删除hadoop中的jar包,拷贝KFS的jar包到hadoop的lib中。文件名为:kfs-0.5.jar

三。修改hadoop-env.sh加入一段export LIBERARY_PATH=path
如果kfs和hadoop部署在同一台机器上,path就是KFS存放so包的那个文件路径。如果不在一台机器上则需要把kfs so 文件全都拷贝到hadoop那台机器上的任意路径
注意:so是分系统版本号的有64位和32位的千万表弄混了。否则就很杯具的。

但是按照以上的配置方法是无法正常启动的
一。我们还需要配置map/reducer
修改mapred-site.xml加入以下语句
<property>
  <name>mapred.job.tracker</name>
  <value>hdfs://192.168.1.1:9001</value>
</property>


二。需要把 libkfsClient.so和libkfs_access.so拷贝到hadoop中的/lib/native/linux-i386-32目录下

接下来就可以启动hadoop了
试着拷贝,或者新建个目录如果可以在kfs中查看到说明就OK了

原创文章:转载请注明出处http://wangwei3.iteye.com/blog/895867
2
5
分享到:
评论
2 楼 lance_123 2011-01-25  
集成性是可以做到的,hadoop目前支持大部分语言,语言之间的通信有很多种框架,如:thrift,procotolbuffer,avro等。
1 楼 forchenyun 2011-01-25  
很不错的尝试,不过个人觉得,无论什么fs,最终的瓶颈在于磁盘的io寻道时间,而非上层应用的瓶颈。虽然没有看过kfs,但是既然是cpp写的,个人还是很怀疑其与hadoop的集成性怎么样

相关推荐

Global site tag (gtag.js) - Google Analytics