Cassandraファイル・システム(CFS)について - 廃止予定

多くの場合、分析ジョブには分散ファイル・システムが必要です。DataStax Enterpriseでは、Cassandraファイル・システム(CFS)と呼ばれるHadoop分散ファイル・システム(HDFS)を用意しています。

分析ジョブには分散ファイル・システムが必要です。DataStax Enterpriseでは、Cassandraファイル・システム(CFS)と呼ばれるHadoop分散ファイル・システム(HDFS)を用意しています。DataStax Enterpriseファイル・システム(DSEFS)も参照してください。DSEFSは、DSE Analyticsノードのデフォルトの分散ファイル・システムです。

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

CFSの場所を指定するには、cfs:/プレフィックスとAnalyticsノードのホスト名を使用する必要があります。たとえば、cfs://node2/tmpのようになります。

デフォルトのCFSキースペースのレプリケーション係数を大きくする

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

CFSキースペース・データの暗号化

Sparkは、構成されている認証を使用して、Hadoopファイル・システム(HDFS)の一部としてCassandraファイル・システム(CFS)にアクセスします。CFSキースペースのsblocksテーブルとinodeテーブルを暗号化すると、すべてのCFSデータが暗号化されます。

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

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

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

CFSからのファイルの削除

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

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

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

CFSの整合性レベルの管理

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

DataStax EnterpriseでCFSをデフォルトの分散ファイル・システムに設定する

DSEFSがデフォルトの分散ファイル・システムです。

CFSをデフォルトのファイル・システムに設定するには、core-site.xmlHadoop構成ファイルに以下のプロパティを追加します。

<configuration>
  ...
  <property>
    <name>fs.default.name</name>
    <value>cfs://127.0.0.1/</value>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>cfs://127.0.0.1/</value>
  </property>
</configuration>

127.0.0.1を、cassandra.yamlに設定されているbroadcast_rpc_addressの値に置き換えます。

core-site.xmlファイルのデフォルトの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/hadoop2-client/core-site.xml

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/hadoop2-client/conf/core-site.xml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/cassandra/cassandra.yaml

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/cassandra/conf/cassandra.yaml

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

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

手順

追加のCFSを作成するには、以下の手順を実行します。

  1. 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の一意のファイル・システム名(cfs-myfs://127.0.0.1/など)を指定します。
    <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. ファイルを保存してDSEを再起動します。

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

  4. 新しいCFSにアクセスするには、以下の形式を使用してURLを作成します。
    cfs-file_system_name:path
    たとえば、新しいファイル・システム名がNewCassandraFSの場合は、dseコマンドを使用してデータを新しいCFSに配置します。
    dse hadoop fs -put /tmp/giant_log.gz cfs-NewCassandraFS://hostname/tmp & dse hadoop fs distcp hdfs:/// cfs-NewCassandraFS://hostname/
    =