序文
それとHadoopの重要なままであるエコシステムの他の構成要素との間に存在すると組み合わされ、記憶容量を提供することであるが、大規模なデータのHadoopエコシステム、KVと同一システムに属するオゾン。例えば、オゾンは、ファイルの読み取りと書き込みのハイブ、それのスパークアプリケーションをサポートすることができますか?しかし、ユーザーのジョブは、スパークプログラムは、ファイルの読み書きを行うためのファイルシステムの方法であり、オゾンはKVの形です。オゾンは、私が話に来て、この、データ・アクセスの問題スパークプログラムまあ、それは既存のジョブプログラムに良い解決策になることができないので、外部アクセス動作、または基盤となるストレージ・フォーマット・オゾンの変化を提供し、互換性のHadoop FileSystemの道をとることができますこの興味深い話題について話しています。内部オゾンオゾンはOzfsと略記オゾンファイルシステムと呼ばれる、Hadoopのファイルシステムに基づいて実装します。著者は、この記事の内容はオゾンファイルシステムの使用を設定して、コンテンツを実装する原理を導入するだろう唯一の方法について説明します。
Hadoopのファイルシステムの実装原理のオゾンファイルシステムの互換性
ここでは、原則としてオゾンファイルシステムの簡単な紹介。道のオゾンによるオリジナルファイルシステムがデータにアクセスすることができない場合(ユーザー仕事、スパークジョブを含む)外部パッケージは、彼らがケースには変わらないはずです。しかし、ここでのHadoopは、互換性のHadoopのファイルシステムを意味し、Hadoopの互換性のあるファイルシステムの概念を提供し、HCFSと呼ばれます。この抽象ファイルシステムでは、などの操作の最も基本的なファイルシステムAPIメソッドで定義。あなたは、この基本的なシステム定義ファイルを入手したら、その後の上位アプリケーションシステムのほとんどは、このようなHadoopの互換ファイルシステムベースのストレージは、独自のシステムを設計実現しています。
HDFSで現在DistributedFileSystemとViewFsデフォルトモードでViewFileSystemは、基礎となるHadoopのファイルシステムのサブクラスです。
オゾンは、その主要な原則の一つは、すべての操作は、バケット内の名前空間で定義されていることで、ここでOzoneFileSystemクラスを達成しました。単にファイルシステムのルートディレクトリとして、既存のバケットと、OzoneFileSystemを話します。その後の、次のようにファイルを作成し、ディレクトリの動作は次のとおりです。
- 構築されたキー操作でファイルを書き込むために、バケツに値をキーを作成するために、ファイルの動作ファイルシステムを作成します。
- バケツにキーを作成し、ディレクトリの挙動を作成し、ファイルシステム、値キーは、空の建設事業です。
- ファイルシステムを再び前の2段階の操作に似たサブディレクトリディレクトリ操作の挙動、で、また、搭載されたキー操作が、キー名に親ディレクトリのパス名をもたらすでしょう。ディレクトリキーTESTDIRの名前場合は/、その後、ファイルとして新しく作成されたディレクトリがTESTDIRます/テストファイルを。
あなたはまだ理解していない場合はここで、それは問題で、私は、その後の例で作成された特定のファイルのディレクトリのデモンストレーションを行いますされません。
オゾンファイルシステムの構成
次のセクションでは、オゾンファイルシステムの公式を使用する方法について説明します。私はここで使用Hadoopのクライアントファイルをテストし、HadoopのFSのコマンドを使用することです。HadoopのFSコマンドコード動作は、初期化と、その後の操作ファイルシステムへのアクセスの実際の実施例によりトリガされます。
そこでここでは、そのような私はパッケージにより使用のHadoop-2.7バージョンとして、Hadoopのに合わせて完全なパッケージにダウンロードする必要があります。
そして、Hadoopの設定ディレクトリを入力し、
cd $HADOOP_HOME/etc/hadoop
このディレクトリにコア-site.xml構成ファイルに次のオゾンファイルシステムを追加し、
<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>
<name>fs.defaultFS</name>
<value>o3fs://buckettest.volumetest</value>
</property>
</configuration>
そして、hadoop-env.sh環境変数の設定Hadoopのクラスパスの設定に追加のHadoopのインストールパッケージがOzoneFileSystem実装クラスをしませんので、我々が瓶に加えてパスを含める、オゾンエンジニアリングパッケージに実装されてOzoneFileSystem次のHadoopのクラスパスに。
パケット環境オゾンパスでテスト
/home/hdfs/ozone
したがって、文書がhadoop-env.sh Hadoopのインストールパッケージに編集されているHadoopのクラスパスへのオゾンfilesytem libにjarファイルの作者。
export HADOOP_CLASSPATH=/home/hdfs/ozone/share/ozone/lib/hadoop-ozone-filesystem-lib-legacy-0.5.0-SNAPSHOT.jar:$HADOOP_CLASSPATH
Hadoopの異なるバージョンのために、必要なオゾンのlibファイルシステムは完全に一致していません。ここはOzoneFileSystemに注意を払うが異なる場合、オゾンコミュニティは、以下のマッピングルールを与え、レガシーと現在の2瓶を持っています。
Hadoopのバージョン | 必要なJAR | OzoneFileSystem実装(fs.o3fs.impl構成用途値) |
---|---|---|
3.2 | ファイルシステム-LIB-現在 | org.apache.hadoop.fs.ozone.OzoneFileSystem |
3.1 | ファイルシステム-LIB-レガシー | org.apache.hadoop.fs.ozone.OzoneFileSystem |
2.9 | ファイルシステム-LIB-レガシー | org.apache.hadoop.fs.ozone.BasicOzoneFileSystem |
2.7 | ファイルシステム-LIB-レガシー | org.apache.hadoop.fs.ozone.BasicOzoneFileSystem |
Hadoopのバージョンの2.7バージョンは、マッピング規則は、上記2.7バージョンに等しく適用さよりも低いです。私はHadoopの-2.7使用されるパケットで試験し、私は、本明細書レガシー+ BasicOzoneFileSystem値を使用するように構成されています。
ここでは、およびHadoopの設定のための私たちが完了した、フォローアップは、初期化動作のオゾン側です。参照OzoneFileSystemは、ルートディレクトリ内のバケットオゾンとして採用されている上記述べました。私たちはオゾンに進めたいので、バケツに作成されます。バケット及びバケット名のボリューム構成が示されるのと同様に、着信fs.defaultFS値として使用されます。
<property>
<name>fs.defaultFS</name>
<value>o3fs://buckettest.volumetest</value>
</property>
テスト環境で著者は、以前のボリュームを構築してきたバケットはバケットbuckettestある下、volumetestです。
OKは、この目的のオゾンファイルシステム構成の発表に、特定の操作を使用しました。
オゾンファイルシステムの使用
以下は、スキーマへのアクセス権を持つトレイルの著者テストバケツ/ volumetest / buckettestルートディレクトリにテスト環境での著者です。スキーマを完了fs.defaultFSに設定している場合でも、この部分は、使用時に省略することができます。
オゾンshコマンドキーファイルによってbuckettestを既存の最初のビュー、次のように、テストファイルのファイル上の(私はOM HAを開いたテスト環境は、それがサービスIDアクセスモードをOM持参する必要があるため)、
[hdfs@lyq hadoop]$ /home/hdfs/ozone/bin/ozone sh key list o3://om-service-test/volumetest/buckettest/
{
"volumeName" : "volumetest",
"bucketName" : "buckettest",
"name" : "testfile",
"dataSize" : 12,
"creationTime" : "2020-01-19T15:20:06.493Z",
"modificationTime" : "2020-01-19T15:20:12.071Z",
"replicationType" : "RATIS",
"replicationFactor" : 3
}
この鍵ファイルは、ルートディレクトリにファイルとしてHadoopのFS -lsに表示されています
[hdfs@lyq hadoop]$ /apache/releases/hadoop-2.7/bin/hadoop fs -ls o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/
Found 1 items
-rw-rw-rw- 3 hdfs hdfs 12 2020-01-19 08:20 o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testfile
OM、ホスト名を記入していない場合は、9862のデフォルトポートを使用して満たされていないポート番号は、OMは、ローカルサービスを見つけるホスト名lyq-M2-XX.XX.XX.XX情報サービス。
その後、我々は、HadoopのFSコマンドによって二つのディレクトリとサブディレクトリを作成します
[hdfs@lyq hadoop]$ /apache/releases/hadoop-2.7/bin/hadoop fs -mkdir o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testdir
[hdfs@lyq ~]$ /apache/releases/hadoop-2.7/bin/hadoop fs -mkdir o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testdir/subdir
[hdfs@lyq hadoop]$ /apache/releases/hadoop-2.7/bin/hadoop fs -ls o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/
Found 2 items
drwxrwxrwx - hdfs hdfs 0 2020-01-30 07:42 o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testdir
-rw-rw-rw- 3 hdfs hdfs 12 2020-01-19 08:20 o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testfile
、彼らはバケツでキー、および差の値として格納されている中のオゾンは、キー値の値であり、
[hdfs@lyq ~]$ /home/hdfs/ozone/bin/ozone sh key list o3://om-service-test/volumetest/buckettest/
{
"volumeName" : "volumetest",
"bucketName" : "buckettest",
"name" : "testdir/",
"dataSize" : 0,
"creationTime" : "2020-01-30T14:39:12.067Z",
"modificationTime" : "2020-01-30T14:39:12.067Z",
"replicationType" : "RATIS",
"replicationFactor" : 1
}
{
"volumeName" : "volumetest",
"bucketName" : "buckettest",
"name" : "testdir/subdir/",
"dataSize" : 0,
"creationTime" : "2020-01-30T14:46:31.687Z",
"modificationTime" : "2020-01-30T14:46:31.687Z",
"replicationType" : "RATIS",
"replicationFactor" : 1
}
{
"volumeName" : "volumetest",
"bucketName" : "buckettest",
"name" : "testfile",
"dataSize" : 12,
"creationTime" : "2020-01-19T15:20:06.493Z",
"modificationTime" : "2020-01-19T15:20:12.071Z",
"replicationType" : "RATIS",
"replicationFactor" : 3
}
ディレクトリの代わりにオゾンFSの主な場合は、「/」の後にキーの名前がかかりますし、データサイズは0です。
もちろん、我々は、作成したディレクトリ内のファイル書き込みを再度、とすることができます
[hdfs@lyq ~]$ /apache/releases/hadoop-2.7/bin/hadoop fs -put testfile o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testdir/
オゾン結果は、キーリストに表示され、
[hdfs@lyq ~]$ /home/hdfs/ozone/bin/ozone sh key list o3://om-service-test/volumetest/buckettest/
{
"volumeName" : "volumetest",
"bucketName" : "buckettest",
"name" : "testdir/",
"dataSize" : 0,
"creationTime" : "2020-01-30T14:39:12.067Z",
"modificationTime" : "2020-01-30T14:39:12.067Z",
"replicationType" : "RATIS",
"replicationFactor" : 1
}
{
"volumeName" : "volumetest",
"bucketName" : "buckettest",
"name" : "testdir/testfile",
"dataSize" : 12,
"creationTime" : "2020-01-30T15:37:20.194Z",
"modificationTime" : "2020-01-30T15:37:23.930Z",
"replicationType" : "RATIS",
"replicationFactor" : 3
}
...
また、OzoneFileSystemも、名前の変更および削除操作をサポートしています
名前の変更操作、
[hdfs@lyq ~]$ /apache/releases/hadoop-2.7/bin/hadoop fs -mv o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testfile o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testfile2
[hdfs@lyq ~]$ /apache/releases/hadoop-2.7/bin/hadoop fs -ls o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/
Found 2 items
drwxrwxrwx - hdfs hdfs 0 2020-01-30 07:53 o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testdir
-rw-rw-rw- 3 hdfs hdfs 12 2020-01-30 07:52 o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testfile2
このキー名でオゾンも即座に更新され、
[hdfs@lyq ~]$ /home/hdfs/ozone/bin/ozone sh key list o3://om-service-test/volumetest/buckettest/
...
{
"volumeName" : "volumetest",
"bucketName" : "buckettest",
"name" : "testfile2",
"dataSize" : 12,
"creationTime" : "2020-01-19T15:20:06.493Z",
"modificationTime" : "2020-01-30T14:52:43.563Z",
"replicationType" : "RATIS",
"replicationFactor" : 3
}
削除操作を削除し、ないゴミの保持、直接除去、
[hdfs@lyq ~]$ /apache/releases/hadoop-2.7/bin/hadoop fs -rm o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testfile2
Deleted o3fs://buckettest.volumetest.lyq-m2-xx.xx.xx.xx/testfile2
オゾンファイルシステムは現在、支持体は、読み取りと書き込みファイルデータがサポートされていない他の追加の改質(例えばsetrep、chownを、SETQUOTA等)として、操作に関連します。
上記のコマンドラインは、ユーザプログラムとのHadoopインスタンスオゾンファイルシステムAPIを呼び出す操作によって得られた構成によって呼び出され、効果を説明コンテンツ同上実施形態のプログラム部分のために必要と完全に一致して、設定値です。
この資料に記載されて、私は単に原理は関連性がある、以下の内容になりますオゾンFileSystemの作者の使用についてです、オゾンは適応Hadoopのファイルシステムのストレージを作るために彼らの設計に基づいて実現する方法です。
引用文
[1]。https://hadoop.apache.org/ozone/docs/0.4.1-alpha/interface/ozonefs.html