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加入一段exportLIBERARY_PATH=path

如果kfs和hadoop部署在同一台机器上,path就是KFS存放so包的那个文件路径。如果不在一台机器上则需要把kfsso文件全都拷贝到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

相关推荐