Cassandraファイル・システム(CFS)について

DSE Analyticsでの使用について、DataStax Enterpriseでは、Cassandraファイル・システム(CFS)と呼ばれるHadoop分散ファイル・システム(HDFS)を用意しています。

DataStax Enterpriseでは、Cassandraファイル・システム(CFS)と呼ばれるHadoop分散ファイル・システム(HDFS)を用意しています。「DataStax Enterpriseファイル・システム(DSEFS)」も参照してください。 DSEFSはDataStax Enterprise内の新しい分散ファイル・システムで、主にSpark Streamingのユース・ケースとWrite Ahead Logging(WAL)を対象としています。

Analyticsノードが起動すると、DataStax Enterpriseによってcfs:/のルートにデフォルトのCFSが作成され、cfs-archive:/のルートにcfs-archiveという名前のアーカイブ・ファイル・システムが作成されます。CFSは、Analyticsノードでのみ使用可能です。Cassandraでは、cfs-archiveファイル・システムおよびその他すべてのCFSファイル・システムに対してキースペースを作成します。キースペース名はファイル・システム名と似ていますが、名前の中のハイフンはアンダースコアに置き換えられます。たとえば、cfs-archiveファイル・システムのキースペースはcfs_archiveです。

デフォルトのCFSキースペースのレプリケーション係数の増加 

デフォルトのCFSキースペースのレプリケーション係数を増加して、分析ジョブを実行する際に問題が発生しないようにする必要があります。

CFSスーパーユーザーの構成 

CFSスーパーユーザーとは、DataStax Enterpriseを起動するユーザーであるDataStax Enterpriseデーモン・ユーザーです。CQLのCREATE ROLEコマンドを使用して設定するcassandraのスーパーユーザーも、CFSスーパーユーザーです。

CFSスーパーユーザーは、一切の制約を受けずにCFS内のファイルを変更できます。スーパーユーザーがCFSに追加するファイルはパスワードで保護されます。

CFSからのファイルの削除 

dse hadoop fs -rm fileコマンドが使用された場合、Cassandraではディスクから即座に削除済みデータを除去しません。その代わりに、削除済みのデータは、Cassandraから削除されたデータと同じように取り扱われます。トゥームストーンが書き込まれ、新しいデータ・ステータスが示されます。トゥームストーンでマークされたデータは、テーブルに設定されたgc_grace_secondsの値に定義された構成期間中存続します。猶予期間が過ぎると、コンパクション・プロセスによってデータが恒久的に削除されます。期限切れのデータを手動で削除する必要はありません。

CFSによるチェックポイント 

DataStax Enterpriseでは、CFSのチェックポイントをサポートしていません。

CFSの整合性レベルの管理 

CFSのデフォルトの読み取りと書き込みの整合性レベルは、キースペースのレプリケーション・ストラテジがSimpleStrategyまたはNetworkTopologyStrategyのどちらであるかによって、それぞれLOCAL_QUORUMまたはQUORUMになります。整合性レベルを変更するには、core-site.xmlファイル内のdse.consistencylevel.readプロパティとdse.consistencylevel.writeプロパティの値を指定します。

複数のCassandraファイル・システムの使用 

CFSは複数の使用が可能です。追加のCFSを使用する一般的な理由は以下のとおりです。
  • 分析ジョブを分離するため
  • キースペースのレプリケーションをジョブごとに構成するため
  • 異なる物理データ・センター内のファイル・システムを分離するため
  • 分析データをその他の方法で分離するため

手順

追加のCFSを作成するには、次のようにします。

  1. core-site.xmlファイルを編集するために開きます。
    core-site.xmlファイルのデフォルトの場所は、インストールのタイプによって異なります。
    Installer-Servicesおよびパッケージ・インストール /etc/dse/hadoop/conf/core-site.xml
    Installer-No Servicesおよびtarボール・インストール install_location/resources/hadoop/conf/core-site.xml
  2. 以下の形式を使用して、1つ以上のプロパティ要素をcore-site.xmlに追加します。
    <property>
    <name>fs.cfs-file_system_name.impl</name>
    <value>com.datastax.bdp.hadoop.cfs.CassandraFileSystem</value>
    </property>
    複数のCFSを使用する場合、新しく作成されたCFSのデフォルトのファイル・システム名を上書きして、他のデータ・センターの既存のCFSとの競合を避ける必要があります。各データ・センターには、固有のデフォルトのファイル・システムが必要です。たとえば、デフォルト値cfs://127.0.0.1/の代わりに、cfs-myfs://127.0.0.1/など、新しいCFSの固有のファイル・システム名を指定します。
    <property>
    <name>fs.cfs-myfs.impl</name>
    <value>com.datastax.bdp.hadoop.cfs.CassandraFileSystem</value>
    </property>
    <property>
    <name>fs.default.name</name>
    <value>cfs-myfs://127.0.0.1/</value>
    </property>
  3. ファイルを保存してCassandraを再起動します。

    DataStax Enterpriseによって新しいCFSが作成されます。

  4. 新しいCFSにアクセスするには、以下の形式を使用してURLを作成します。
    cfs-file_system_name:path

    たとえば、新しいファイル・システム名がNewCassandraFSの場合は、dseコマンドを使用してデータを新しいCFSに配置します。

    dse hadoop fs -put /tmp/giant_log.gz cfs-NewCassandraFS://cassandrahost/tmp
    
    dse hadoop fs distcp hdfs:/// cfs-NewCassandraFS:///