ビッグ データを操作するためにマスターする必要がある主要な Hadoop DFS コマンド

ハドゥープは、大量のデータを効率的に管理および処理するためにビッグ データ愛好家のみが使用するオープン ソース ツールです。はい、大きいということは大きいということです。はい、とても大きいです。ハードドライブ上に存在する 1 TB のデータについて話しているのではありません。しかしビッグデータと協力することを指します大量のデータ、ほとんどの場合、これはペタバイトからエクサバイト、あるいはそれ以上の範囲にあります。それがどれほど大きいかについては説明の必要はないと思います。はい、Hadoop の助けを借りて、このような膨大な量のデータをマイニングの目的で効率的に管理でき、後でターゲットを絞った広告の表示、ソーシャル エンジニアリング、マーケティングなどの目的で使用できます。

ビッグ データを扱う場合、ディスク容量が制約になるべきではありません。そのため、セットアップの初期コストを気にせずに、汎用ハードウェアを使用して大量のデータを保存および処理します。 Hadoop コマンドの説明に入る前に、コマンドをより深く理解し、Hadoop の操作をパイの一部にするために、まず Hadoop がどのように機能するかの基本を理解しましょう。

Hadoopは実際に動作しますマスタースレーブアーキテクチャ、マスターはそれに接続されている他のさまざまなスレーブにジョブを割り当てます。 Hadoop の場合、マスターはネーム ノードと呼ばれ、接続されている他のスレーブはデータ ノードと呼ばれます。名前ノードとデータ ノードはどちらも SSH を使用して相互に通信します。Hadoop のユーザーはコマンドを実行するだけで、残りは Hadoop が処理します。特別な知識がない限り、Name ノードと Data ノードの間の接続について心配する必要はありません。Hadoop管理者。

Hadoop には独自のファイル システムがあり、Hadoop 分散ファイル システム (HDFS)。データ ノードとネーム ノードのそれぞれには独自のローカル ファイル システムがあり、HDFS は接続されたノード内で利用可能なローカル ファイル システムと通信するためのブリッジを提供します。ネーム ノードとは別に、セカンダリ ネーム ノードがあり、ネーム ノードがダウンしても機能します。セカンダリ ネーム ノードは単にバックアップとして機能します。についてのみ説明するので、この文脈ではそれは重要ではありません。Hadoopコマンド。ここで指定するすべてのコマンドはファイルになりますシステムコマンドこれは、Hadoop を使用している場合に必要になります。他にも多数の Hadoop があります管理コマンドこれは、Hadoop 管理者に役立つ可能性があります。これらのコマンドについては別の記事を作成します。必要な場合は、以下にコメントしてください。

Hadoop は Java で作られ、Linux 上で動作するため、Hadoop および Linux コマンドかなり似ていて、ほとんどがHadoop で使用される Linux コマンド。それでは、最初のコマンドに進みましょう。Hadoop HDFS コマンドのリスト。

Hadoop DFS 用の基本的な Linux タイプのコマンドのリスト

start-all.sh

Hadoop デーモン、ネーム ノード、および接続されたデータ ノードを起動します。

ストップオール.sh

Hadoop デーモン、ネーム ノード、および接続されているデータ ノードを停止します。

Linux と Hadoop の両方で同じコマンドが多数ありますが、少し工夫があります。見つけてみましょう。

hdfs dfs -ls

hadoop fs -ls の出力には、Hadoop ホーム ディレクトリ上のすべてのファイルとディレクトリがリストされます。これと、現在の作業ディレクトリ内のすべてのファイルとディレクトリを一覧表示するために使用される Linux のネイティブ 'ls' コマンドとの間に類似点があることがわかります。

hdfs dfs -ls<HDFS URL>

URL を介して入力された、HDFS の場所にあるすべてのファイルとディレクトリを一覧表示します。

  • 例: hdfs dfs -ls ラフ/ビッグ/データ

HDFS 上のパス「rough/big/data」内のすべてのファイルとディレクトリをリストします。

hdfs dfs -put<Local file’s URL><HDFS URL>

指定された URL のローカル ファイル システムから、入力された場所の HDFS にファイルを置きます。ファイルをコピーして貼り付けるようなものです。

  • 例: hdfs dfs -put abc.txtrough/big/data

「abc.txt」という名前のファイルを現在の作業ディレクトリから HDFS 上のパス「rough/big/data」に置きます。

hdfs dfs -get<HDFS URL><Local file system URL>

HDFS 内の任意の場所からファイルをローカル ファイル システム内の目的の場所に取得します。コピー アンド ペーストと似ていますが、ソースは HDFS 内にあります。

  • 例: hdfs dfs -getrough/big/data/file.txt local/client

HDFS 内の URL 'rough/big/data' から、ローカル ファイル システム上のディレクトリ 'local/client' に、'file.txt' という名前のファイルを取得します。

hdfs dfs -copyFromLocal<local file URL><URL on HDFS> / hdfs dfs -copyFromLocal -f<local file URL><URL on HDFS>

ローカル ファイル システムから HDFS 上に存在する指定された URL にファイルをコピーします。 -f を指定すると、ファイルは宛先ディレクトリに上書きされます。この動作は、前に説明した「put」コマンドと非常に似ています。

  • 例: hdfs dfs –copyFromLocal -f abc.txtrough/big/data

同じ名前のファイルがそこに存在する場合でも、「abc.txt」という名前のファイルを現在の作業ディレクトリから HDFS パス「rough/big/data」にコピーします。

hdfs dfs -moveFromLocal<local file URL><URL on HDFS>

前のコマンドと似ていますが、唯一の違いは、ソース ファイルが存在しなくなることです。これは、Windows のカット アンド ペースト コマンドやその他の GUI インターフェイスに似ています。

  • 例: hdfs dfs -moveFromLocal abc.txtrough/big/data

「abc.txt」という名前のファイルを現在の作業ディレクトリから HDFS パス「rough/big/data」に移動します。コマンド実行後、ソース内のソースファイル「abc.txt」は削除されます。

hdfs dfs -copyToLocal<HDFS file URL><local directory >

HDFS URL から指定された URL のローカル ディレクトリにファイルをコピーします。この場合、ローカル URL は常にディレクトリである必要があります。

  • 例: hdfs dfs –copyToLocalrough/big/data/abc.txt training/clients

HDFS URL から URL「rough/big/data」にある abc.txt という名前のファイルを、ディレクトリ トレーニング内のローカル ディレクトリ クライアントにコピーします。

hdfs dfs -moveToLocal<HDFS file URL><local directory >

ファイルを HDFS URL から指定された URL のローカル ディレクトリに移動します。前のコマンドと同様に、ローカル URL は常にディレクトリである必要があります。カットアンドペーストと同様に、HDFS 内のソース URL からファイルが削除されます。

  • 例: hdfs dfs -moveToLocalrough/big/data/abc.txt training/clients

これは、ディレクトリ トレーニング内の、URL 'rough/big/data' の abc.txt という名前のファイルを、HDFS URL からローカル ディレクトリ クライアントに移動します。実行後、HDFS URL からのファイルは自動的に削除されます。

hdfs dfs –cp<HDFS source URL><HDFS destination URL> / hdfs dfs –cp -f<HDFS source URL><HDFS destination URL>

任意の HDFS URL から HDFS 内の別の宛先にファイルをコピーします。 -f を使用すると、ファイルは宛先ディレクトリに上書きされます。

  • 例: hdfs dfs -cp ラフ/ビッグ/データ/abc.txt ラフ/ビッグ

「abc.txt」という名前のファイルを、HDFS 上のディレクトリ「rough/big/data」から宛先ディレクトリ、つまり「rough/big」にコピーします。

hdfs dfs –mv<HDFS source URL><HDFS destination URL>

HDFS を使用して、任意の HDFS URL から別の宛先にファイルを移動します。カットアンドペーストと同様に機能しますが、HDFS URL にのみ制限されます。ファイルを移動するため、操作後にソースファイルは削除されます。

  • 例: hdfs dfs -mv ラフ/ビッグ/データ/abc.txt ラフ/ビッグ

「abc.txt」という名前のファイルを、HDFS 上のディレクトリ「rough/big/data」から宛先ディレクトリ、つまり「rough/big」に移動し、ファイル「abc.txt」をソース ディレクトリから削除します。

hdfs dfs -cat<URL/filename>

HDFS 内の特定の場所に保存されているファイルの内容を、指定された URL で表示します。

  • 例: hdfs dfs -catrough/big/data/abc.txt

HDFS 上のディレクトリ「rough/big/data」内のファイル「abc.txt」の内容を表示します。

hdfs dfs -chmod<mode><HDFS URL/filename> / hdfs dfs –chmod –r<mode><HDFS URL>

HDFS 内で、URL に存在するファイルのアクセス許可モードを変更します。 「-r」を使用すると、URL 内に存在するすべてのファイルのモードが再帰的に変更されます。

  • 例: hdfs dfs -chmod 777rough/big/data/abc.txt

HDFS 上のディレクトリ 'rough/big/data' 内のファイル 'abc.txt' に対して、現在のユーザー、同じグループのユーザーなどの読み取り、書き込み、および実行のすべてのアクセス許可を設定します。これは 8 進数の番号体系に基づいており、各番号は 1 つの権限を指します。 Linux での 8 進数によるアクセス許可の設定の詳細については、オンラインで参照できます。

hdfs dfs -mkdir<URL/Directory name> / hdfs dfs -mkdir –p<URL/Directory name>

入力された URL に、入力された名前で HDFS 内にディレクトリを作成します。 mkdir の後にディレクトリ名を直接入力すると、HDFS ホーム ディレクトリに希望の名前の新しいディレクトリが作成されます。 -p を指定すると、親ディレクトリが存在しない場合はすべて作成されます。

  • 例: hdfs dfs -mkdirrough/big/data/Hadoop

HDFS 上の URL「rough/big/data」内に「Hadoop」という名前の新しいディレクトリが作成されます。

  • 例: hdfs dfs -mkdir -p learn/big/data/direc

多数の新しいディレクトリが作成され、「direc」が data に存在し、「big」が存在し、「learn」が再び存在します。いずれかのディレクトリがすでに存在する場合、次のディレクトリは親ディレクトリに自動的に作成されます。

hdfs dfs -rm<URL/filename> / hdfs dfs -rm -r<URL>

これは、指定されたファイル名のファイルを指定された HDFS の場所から削除または削除するために使用されます。 –r を使用すると、ファイルを再帰的に削除できます。

  • 例: hdfs dfsrough/big/data/del.txt

指定された HDFS の場所、つまり、rough/big/data から del.txt という名前のファイルが削除されます。

hdfs dfs –touchz<URL/filename>

これは、HDFS の場所に空のファイル、または指定されたファイル名のファイル構造を作成するために使用されます。ファイルのサイズは0バイトになります。

  • 例: hdfs dfs –touchzrough/big/data/empty.txt

HDFS URL「rough/big/data」に「empty.txt」という名前のファイルが作成されます。ファイルのサイズは0バイトになります。留意すべき点は、HDFS 上のファイルを直接編集するのはそれほど簡単ではないということです。編集するには、それをローカル システムにコピーする必要があります。または、MapReduce などの他の Hadoop ツールを使用して、空のファイルまたはその他のファイルを編集することもできます。 Nano やその他の CUI エディタを使用してそのファイルを編集することはできません。

hdfs dfs -test <-e/-z/-d><URL/filename>

ファイルが存在するかどうかをテストします。

–e を指定すると、URL 内でファイルがチェックされ、ファイルが存在する場合は 0 が返されます。

–z を指定すると、ファイルがチェックされ、HDFS URL 内のファイルのサイズが 0 バイトの場合、0 が返されます。

–d を指定すると、指定された URL がディレクトリを指している場合、0 が返されます。

hdfs dfs -appendToFile<Local file URL><HDFS File URL>

これは、HDFS 上の既存のファイルにローカル ファイルを追加するために使用されます。

  • 例: hdfs dfs –appendToFile abc.txtrough/big/data/def.txt

ローカル ファイル abc.txt の内容を、HDFS 上の指定された URL に存在するファイル def.txt に追加します。

Hadoop FS と HDFS DFS の比較

したがって、基本的なことは、Hadoop コマンドを実行したい場合は、「hdfs dfs」を指定する必要があるということです。これにより、HDFS を使用したいことをターミナルに認識させることができます。 「hdfs dfs」の代わりに「hadoop fs」を使用してコマンドを使用することもできます。同じ結果が得られます。

たとえば、「hdfs dfs –ls」と「hadoop fs –ls」は同じ出力を返します。ただし、すべてのキーが近くに配置されているため、「hdfs dfs」の方が優れています。

ここでは、Hadoop に関連する日常業務で主に必要となる基本的なコマンドをいくつか紹介しました。他にも多くのコマンドがありますが、場合によってはそれらが必要になることはほとんどありません。上記のコマンドを覚えておけば、Hadoop の基本をマスターするのに役立ちますし、産業用途にも十分です。

Hadoop ファイル システム コマンドの小さなリストがお役に立てば幸いです。ご提案がある場合は、以下にコメントしてください。

こちらもご覧ください: