FUSEのインストール

Filesystem in Userspace (FUSE)では、カーネルに変更を加える必要なく、特権のないユーザーがファイルシステムにアクセスできます。BDDとの関連では、HDFSをマウント可能ローカル・ディスクのように動作させることで、DgraphでHDFSのデータの読取りおよび書込みができるようになります。Dgraphでは、FUSE 2.8+がサポートされています。

注意: FUSEは、MapR、CDH 5.7.1またはHDFS保存データ暗号化を使用するHadoopクラスタではサポートされていません。

HDFS NFS Gatewayサービスを使用していない場合は、FUSEを、DgraphをホストするすべてのHDFS DataNodeにインストールする必要があります。また、bddユーザーは、DgraphプロセスをFUSEと統合できる権限がさらに必要となり、FUSEおよびDgraphが並列取込み時にクラッシュしないようHDFSでのソケット・タイムアウトを増加させる必要があります。

FUSEをインストールするには、次の手順を実行します。

  1. FUSEクライアントをhttps://github.com/libfuse/libfuse/releasesからダウンロードします。
    fuse-<version>.tar.gzファイルがマシンにダウンロードされます。
  2. fuse-<version>.tar.gzを展開します。
    tar xvf fuse-<version>.tar.gz
    これにより、/fuse-<version>というディレクトリが作成されます。
  3. /fuse-<version>を、Dgraphをホストするすべてのノードにコピーします。
  4. 各ノードで、/fuse-<version>に移動して実行することで、FUSEをインストールします。
    ./configure
    make -j8
    make install
  5. 各Dgraphノードで、次の手順を実行します。
    1. bddユーザーをfuseグループに追加します。
    2. bddユーザーにfusermountのための読取りおよび実行権限を与えます。
    3. bddユーザーに/dev/fuseに対する読取りおよび書込み権限を与えます。
  6. HDFS構成を更新します。
    1. テキスト・エディタでhdfs-site.xmlを開き、次の行を追加します。
      <property>
           <name>dfs.client.socket-timeout</name>
           <value>600000</value>
      </property>
      <property>
           <name>dfs.socket.timeout</name>
           <value>600000</value>
      </property>
      <property>
           <name>dfs.datanode.socket.write.timeout</name>
           <value>600000</value>
      </property>
      
    2. Hadoopマネージャで次の変更を加えます。
      CDHがある場合は、Cloudera Managerを開き、前述の行を次のプロパティに追加します。
      • HDFS Service Advanced Configuration Snippet (Safety Valve) for hdfs-site.xml
      • DataNode Advanced Configuration Snippet (Safely Valve) for hdfs-site.xml
      • HDFS Client Advanced Configuration Snippet (Safety Valve) for hdfs-site.xml
      HDPがある場合は、Ambariを開き、次のプロパティを600000に設定します。
      • dfs.client.socket-timeout
      • dfs.datanode.socket.write.timeout
      • dfs.socket.timeout
    3. 変更内容を有効にするために、HDFSを再起動します。