原创文章:转载请注明出处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