【コピペでOK】6ステップでHDFSのNFS Gatewayを使う方法

【コピペでOK】6ステップでHDFSのNFS Gatewayを使う方法

 

★悩み★
・HDFSのNFS Gatewayを使う方法が分からない。
・HDFSのNFS Gatewayで何ができるか分からない。
・HDFSのNFS Gatewayでできないことってあるのだろうか。



こういった「悩み」に答えます。
 

★本記事の内容★
① 6ステップでHDFSのNFS Gatewayを使う方法を紹介【コピペで簡単】
② HDFSのNFS Gatewayでできること/できないことを紹介



これからご紹介する「6ステップでHDFSのNFS Gatewayを使う方法」を実践したことで、筆者は30分以内で、HDFSのNFS Gatewayを使うことができました。

記事の前半では「NFS Gatewayを使うまでの方法」をなるべくコピペ可能な手順で紹介します。
記事の後半では「NFS Gatewayでできること/できないこと」を実機検証を交え紹介します。

この記事を読み終えることで、「HDFSのNFS Gatewayを使える」だけではなく、「HDFSのNFS Gatewayの特徴」も理解した状態になります。

 

6ステップでHDFSのNFS Gatewayを使う方法【コピペで簡単】

6ステップでHDFSのNFS Gatewayを使う方法【コピペで簡単】


6ステップでHDFSのNFS Gatewayを使う方法をご紹介します。

★NFS Gatewayを使う方法★
ステップ1:HDFS(Hadoop)をインストール
ステップ2:NFS Gatewayに必要なパッケージをインストール
ステップ3:NFS Gatewayの動作に影響するプロセスを停止
ステップ4:設定ファイルにNFS Gatewayの設定値を追加
ステップ5:NFS Gatewayを起動
ステップ6:HDFSをNFSとしてマウント



上記の6ステップで、HDFSのNFS Gatewayを使うことができます。

それでは、各ステップに関してご説明します。
 

ステップ1:HDFS(Hadoop)をインストール

まずは、HDFSを使える状態にしましょう。

Hadoopをインストールしセットアップすることで、HDFSを使うことができます。

Hadoopのインストールとセットアップは、以下から見られます。
 



HDFSを使うことができる状態になりましたら、ステップ2へ進みましょう。
 

ステップ2:NFS Gatewayに必要なパッケージをインストール

HDFSのNFS Gatewayを使うために、以下のパッケージが必要です。
 

★必要なパッケージ★
・rpcbind
・nfs-utils



上記のパッケージをインストールするために、以下のコマンドを実行します。

# yum install -y rpcbind nfs-utils 



以上で、HDFSのNFS Gatewayに必要なパッケージのインストールが完了です。
 

ステップ3:NFS Gatewayの動作に影響するプロセスを停止

rpcbind関連のプロセスが起動しているとNFS Gatewayが正常動作しません。

そのために、rpcbind関連のプロセスが自動起動しないように以下のコマンドをマスタサーバで実行します。

# systemctl disable nfs 
# systemctl disable rpcbind
# systemctl disable rpcbind.socket 
# systemctl disable rpcbind.service


その後、マスタサーバを再起動し、Hadoop関連のプロセスを起動しましょう。

以上で、「ステップ3:NFS Gatewayの動作に影響するプロセスを停止」が完了です。

ステップ4:設定ファイルにNFS Gatewayの設定値を追加

Hadoopの設定ファイルに「NFS Gateway」関連の設定値を追加します。

マスタサーバ上にある以下の設定ファイルを編集します。

$ cat /opt/oss/hadoop-3.2.1/etc/hadoop/core-site.xml 
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master1:9000</value>
   </property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.hadoop.groups</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.nfsserver.groups</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.nfsserver.hosts</name>
  <value>*</value>
</property>
</configuration>

$ cat /opt/oss/hadoop-3.2.1/etc/hadoop/hdfs-site.xml 
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
   <property>
      <name>dfs.data.dir</name>
      <value>/var/opt/oss/hadoop/data</value>
   </property>
   <property>
      <name>dfs.name.dir</name>
      <value>/var/opt/oss/hadoop/name</value>
   </property>
<property>
  <name>nfs.port.monitoring.disabled</name>
  <value>false</value>
</property>

</configuration>

 

Hadoop管理ユーザーが「hadoop」ユーザーである場合、
hadoop.proxyuser.hadoop.groupsとhadoop.proxyuser.hadoop.hostsを定義します。
Hadoop管理ユーザーが「hoge」ユーザーである場合、hadoop.proxyuser.hoge.groupsとhadoop.proxyuser.hoge.hostsのように定義します。



編集した設定ファイルを以下のコマンドで全てのスレーブサーバへ転送します。

$ scp -pr /opt/oss/hadoop-3.2.1/etc/hadoop/core-site.xml slave2:/opt/oss/hadoop-3.2.1/etc/hadoop
$ scp -pr /opt/oss/hadoop-3.2.1/etc/hadoop/hdfs-site.xml slave2:/opt/oss/hadoop-3.2.1/etc/hadoop


以上で、「ステップ4:設定ファイルにNFS Gatewayの設定値を追加」が完了です。
 

ステップ5:NFS Gatewayを起動

HDFSのNFS Gatewayを起動するために以下のコマンドをマスタサーバで実行します。

# service nfs stop
# service rpcbind stop
# /opt/oss/hadoop-3.2.1/bin/hdfs --daemon start portmap
$ su - hadoop ★Hadoopの管理者に変更します★
$ $HADOOP_HOME/bin/hdfs --daemon start nfs3


以上で、「ステップ5:NFS Gatewayを起動」が完了です。
 

ステップ6:HDFSをNFSとしてマウント

HDFSをNFSとしてマウントしたいサーバで以下のコマンドを実行します。

# mkdir /hdfs_nfs
# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync 192.168.10.150:/ /hdfs_nfs/


HDFSをNFSとしてマウント後、以下のようにHDFSを参照できます。

# ll /hdfs_nfs/
合計 2
drwxr-xr-x 3 hadoop 2584148964 96  9月 11 21:07 blog2
drwxr-xr-x 3 hadoop 2584148964 96  4月  6  2020 tmp
drwxr-xr-x 3 hadoop 2584148964 96  3月 20  2020 user
# ll /hdfs_nfs/user/hadoop/blog
合計 1
-rw-r--r-- 1 hadoop 2584148964 11 10月  4 21:40 sample.txt
-rw-rw-r-- 1 hadoop hadoop     10 10月  4 21:45 test.txt
# cat /hdfs_nfs/user/hadoop/blog/sample.txt 
a
b
c
a
aa
# 


以上で、「ステップ6:HDFSをNFSとしてマウント」が完了です。
 

上記の6ステップで基本的なHDFSのNFS Gatewayを使うことができます。

NFS Gatewayには様々な設定が可能です。

HDFSのNFS Gatewayの様々な設定方法に関しては、公式サイトに記載されています。

HDFSのNFS Gatewayの使い方について
※上記をクリックすると新規でタブが開きます。

HDFSのNFS Gatewayでできること/できないこと

HDFSのNFS Gatewayでできること/できないこと


HDFSのNFS Gatewayで「できること」と「できないこと」を紹介します。
 

HDFSのNFS Gatewayでできること

HDFSのNFS Gatewayを使うことでできることをご紹介します。

★HDFSのNFS Gatewayでできること★
① HDFSをローカルファイルシステムとして閲覧できる
② POSIXコマンドでHDFS上のファイルをダウンロードできる
③ POSIXコマンドでファイルをHDFS上にアップロードできる
④ POSIXコマンドでHDFS上のファイルを参照できる
⑤ POSIXコマンドでHDFS上のファイルを削除できる



HDFSのNFS Gatewayを使うことで上記の5つのことができます。
 

HDFSのNFS Gatewayでできないこと

HDFSのNFS Gatewayでできないことをご紹介します。

★HDFSのNFS Gatewayでできないこと★
POSIXコマンドでHDFS上のファイルを更新する際に制約がある。



HDFSのNFS Gatewayを使うことでできないことは上記の1つです。

NFS Gateway経由でのHDFS上のファイル更新に関して以下のように言及されています。

★更新に関する注意★
Users can stream data directly to HDFS through the mount point. File append is supported but random write is not supported.

参照先:HDFSのNFS Gatewayの使い方について



NFS Gateway経由でのHDFS上のファイル追記はできますが、追記ではないファイル更新に関してはサポートしていないらしいです。
 

【まとめ】6ステップでHDFSのNFS Gatewayを使う方法

【まとめ】6ステップでHDFSのNFS Gatewayを使う方法


今回の記事を通して、「6ステップでHDFSのNFS Gatewayを使う方法」をご紹介することで、以下の悩みを解消しました。
 

★悩み★
・HDFSのNFS Gatewayを使う方法が分からない。
・HDFSのNFS Gatewayで何ができるか分からない。
・HDFSのNFS Gatewayでできないことってあるのだろうか。



HDFSのNFS Gatewayを使う方法は?と悩んでいるあなた」にこの記事が少しでも役に立てれば幸いです。

コメント

タイトルとURLをコピーしました