Ozone作为Hadoop FileSystem的配置使用

前言


Ozone作为同样隶属于Hadoop大数据生态圈的一个系统,尽管它提供的是K-V对象存储能力,但是它和其它现有的Hadoop生态圈组件之间的结合使用依然十分重要。比如说Ozone是否能够支持Hive,Spark应用程序的文件读写呢?但是用户Job,Spark程序是以FileSystem的方式做文件的读写的,而Ozone是K-V形式。假设Ozone能够Hadoop兼容性的FileSystem方式对外提供访问操作,在底层还是Ozone的存储形式不变,这样不就能够很好的解决现有Job程序,Spark程序的数据访问问题嘛,本文笔者就来聊聊这个有意思的主题。Ozone内部实现了基于Ozone的Hadoop FileSystem,叫做Ozone FileSystem,简写为Ozfs。此篇内容笔者将只会介绍怎么配置使用Ozone FileSystem,后面再介绍其原理实现内容。

Ozone FileSystem的Hadoop兼容性文件系统实现原理


这里简单介绍Ozone FileSystem的工作原理。对于外部应该程序包(包含用户Job,Spark Job)来说,它们如果在不改变原有通过FileSystem的方式的情况下是不能够访问Ozone的数据的。不过Hadoop在这里提供了一个Hadoop Compatible FileSystem的概念,意为Hadoop兼容性文件系统,简称为HCFS。在这个抽象的FileSystem内,定义了作为文件系统而言最基本的API操作方法。有了这个最最的基本文件系统定义之后,后续上层的应用系统基于自身系统的存储设计实现这样的Hadoop兼容文件系统。

目前HDFS中默认使用的DistributedFileSystem和ViewFs模式下的ViewFileSystem都是底层Hadoop FileSystem的子类。

Ozone在这里实现了OzoneFileSystem类,它的一个主要原理是将所有的namespace操作都限定在了一个bucket内。简单地来说,OzoneFileSystem用一个现有的bucket,作为这个文件系统的root目录。后续的创建文件,目录行为如下:

  • FileSystem的创建文件行为,在bucket下创建Key,Value为写入文件的建Key操作。
  • FileSystem的创建目录行为,在bucket下创建Key,Value为空的建Key操作。
  • FileSystem的在子目录中再进行文件目录操作行为,类似前两步操作,同样是建Key操作,不过在Key名称上将会带上父目录路径名称。假设一个目录key的名称为testdir/,则这个目录下新建的文件将会如testdir/testfile。

这里如果大家还是不太理解,没有关系,笔者在后续的例子中还会进行具体文件目录创建的演示。

Ozone FileSystem的配置


下面来正式介绍Ozone FileSystem的配置使用了。这里笔者使用的是Hadoop Client进行文件的测试,用hadoop fs下的命令。hadoop fs命令触发的代码操作中会进行实际FileSystem的实例初始化以及后续的操作访问。

因此这里首先我们要下载到一个完整的Hadoop按照包,比如笔者使用的Hadoop-2.7版本的按照包。

然后进入hadoop配置目录,

cd $HADOOP_HOME/etc/hadoop

在此目录的core-site.xml文件中添加如下Ozone FileSystem相关配置,

<configuration>

<property>
  <name>fs.o3fs.impl</name>
  <value>org.apache.hadoop.fs.ozone.BasicOzoneFileSystem</value>
</property>
<property>
  <name>fs.AbstractFileSystem.o3fs.impl</name>
  <value>org.apache.hadoop.fs.ozone.OzFs</value>
</property>
<property
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值