Ozone作为Hadoop FileSystem的配置使用

2023-11-16

前言


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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ozone作为Hadoop FileSystem的配置使用 的相关文章

随机推荐

  • QT 三种关联信号和槽的办法

    1 手动关联 connect ui gt showChildButton QPushButton clicked this MyWidget showChildDialog 2 自动关联 右键单击按钮弹出菜单中选择 转到槽 void MyD
  • Basic Level 1052 卖个萌 (20分)

    题目 萌萌哒表情符号通常由 手 眼 口 三个主要部分组成 简单起见 我们假设一个表情符号是按下列格式输出的 左手 左眼 口 右眼 右手 现给出可选用的符号集合 请你按用户的要求输出表情 输入格式 输入首先在前三行顺序对应给出手 眼 口的可选
  • vue添加水印踩坑

    介绍 前景 app页面添加水印展示 技术实现 watermark dom 完整代码 vue watermark 实现效果 功能描述 添加 删除 更新水印 引入 方式一 推荐 方便拓展 在index html引入相关文件 方式二 npm包引入
  • java byte[] 学习总结

    最近在学习netty 突然发现自己对字符数组是那么的陌生 吓死宝宝了 然后各种学习 然后测试 终于会用一些了 下线的都是本人的学习笔记 byte表是字符 一个字节 8位 可以组成2 8 256中不同数字 byte存值范围 128 127 1
  • pytorch基本使用_02

    import numpy as np import torch 从numpy引入tensor a np array 2 3 3 print torch from numpy a tensor 2 0000 3 3000 dtype torc
  • java线上CPU100%如何排查

    定位耗费CPU的进程 top c 就可以显示进程列表 然后输入P 按照cpu使用率排序 你会看到类似下面的东西 2 定位耗费CPU的线程 top Hp 1500 就是输入那个进程id就好了 然后输入P 按照cpu使用率排序 你会看到类型下面
  • 单片机c语言数码管显示0到9,单片机如何让8个数码管同时流水显示0到9,大家帮我看看!...

    按你的要求修改如下 include reg52 h 此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16 对数据类型进行声明定义 typedef unsigned char u8 sbit LSA P2
  • Java 网络编程UDP协议之发送数据和接收数据的详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 UDP协议 用户数据报协议 User Datagram Protocol UDP是无连接通信协议 即在数据传输时 数据的发送端和接收端不
  • 《信号与系统》4.10.2工频干扰的滤除

    平台 版本 Multisim14 1 参考书籍 信号与系统 4 10 2工频干扰的滤除 工程上 滤除工频干扰比较常用的电路是无源双T陷波滤波器 图示双T的无源陷波滤波器电路 陷波器是某一小频率范围内的带阻滤波器 陷波器的一个常见的应用是滤除
  • Seaborn入门详细教程

    作者 luanhz 来源 小数志 Seaborn入门详细教程 导读 今天我们来介绍 seaborn 这是一个基于matplotlib进行高级封装的可视化库 相比之下 绘制图表更为集成化 绘图风格具有更高的定制性 教程目录 01 初始seab
  • 一文带你了解序列化与反序列化基本原理与操作

    文章目录 一 什么是序列化与反序列化 二 为什么我们需要序列化与反序列化 三 步骤说明 四 注意说明 五 代码说明 六 序列化与反序列化原理 一 什么是序列化与反序列化 序列化是指将对象转换为字节序列的过程 以便于存储或传输 在序列化过程中
  • torch的交叉熵损失函数(cross_entropy)计算(含python代码)

    1 调用 首先 torch的交叉熵损失函数调用方式为 torch nn functional cross entropy input target weight None size average None ignore index 100
  • idea 配置log4j

    1 导入log4j jar包 放在lib目录下 右键jar包 createlibrary 好像是 还有一种方法 2 配置log4j properties文件 设置输出信息 DEBUG级别和ERROR级别 log4j rootLogger d
  • 【图像检测】基于计算机视觉和滤波实现热红外图像温度检测系统含Matlab源码

    1 简介 读入给定的热红外图像 完成彩色图像灰度化 对步骤1中的灰色图像加噪 并采用不同的方法对不同的加噪图像去噪 使得去噪效果更佳 基于灰度图像中标准温度对照带 提取图像中各像素的温度值 2 部分代码 function varargout
  • Keras-多输入多输出【多任务】

    模型结果设计 代码 from keras import Input Model from keras layers import Dense Concatenate import numpy as np from keras utils i
  • Reid 论文文章

    Reid 论文探索 Harmonious Attention Network for Person Re Identification 着重在空间注意力和通道注意力上 结构设计比较巧妙 通过global和local的两级将特征细化 参考链接
  • [QT_027]Qt学习之按钮类控件(QPushButton、QToolButton、QRadioButton、QCheckBox、QCommandLinkButton)

    本文转自 Qt编程指南 作者 奇先生 Qt编程指南 Qt新手教程 Qt Programming Guide 5 1 按钮类的控件 本节介绍图形程序里常见的按钮 包括普通的按钮按钮 之前都用过多次了 还有单选按钮 复选框 命令链接按钮等 本节
  • 【python】jupyter notebook的快捷键

    Jupyter Notebook 提供了许多快捷键以方便操作 这些快捷键分为两类 命令模式快捷键和编辑模式快捷键 命令模式快捷键 在命令模式下 细胞边框是蓝色的 这些快捷键主要用于操作单元格 Enter 进入编辑模式 Shift Enter
  • NoSQL数据库如何选型

    NoSQL数据库在体系结构和功能上各不相同 整体来说 NoSQL数据库选型需要从数据模型和存储特性两方面综合考虑 一 数据模型 NoSQL数据模型包括键值 宽列 图形 文档等 与关系型数据库使用的数据结构不同 具有高扩展性 弱一致性 适合分
  • Ozone作为Hadoop FileSystem的配置使用

    文章目录 前言 Ozone FileSystem的Hadoop兼容性文件系统实现原理 Ozone FileSystem的配置 Ozone FileSystem的使用 引用 前言 Ozone作为同样隶属于Hadoop大数据生态圈的一个系统 尽