hadoop自習日記-3.hadoop hdfs操作
ビルド環境
シンプルなWindows 7ノートブックを使用し、VirtualBoxを使用してCentos仮想マシンを作成し、Hadoopをインストールします
VirtualBox:6.0.8 r130520(Qt5.6.2)
CentOS:CentOS Linux release 7.6.1810(Core)
jdk:1.8.0_202
hadoop:2.6.5
クラスター環境
- hdfsではNameNodeとして機能し、yarnではResourceManagerとして機能するマスターノード。
- 3つのデータノード、data1、data2、data3は、hdfsではDataNodeとして機能し、yarnではNodeManagerとして機能します。
名前 | ip | hdfs | 糸 |
---|---|---|---|
主人 | 192.168.37.200 | NameNode | ResourceManager |
data1 | 192.168.37.201 | データノード | NodeManager |
data2 | 192.168.37.202 | データノード | NodeManager |
data3 | 192.168.37.203 | データノード | NodeManager |
基本的なコマンド
hdfsの操作には2つの構文があります。1つは、hadoop fs
このコマンドはhdfsを操作できるだけでなく、他のファイルシステムにも使用でき、もう1つは、hdfs dfs
特にhdfs分散ファイルシステムに使用できます。
ここでhadoop fs
は例としてより広い範囲を使用します
1.カタログを見る
-ls
コマンドを使用して表示します。
[root@master ~]# hadoop fs -ls /
2.ディレクトリを作成する
'' '-mkdir' ''コマンドを使用してディレクトリを作成します "
[root@master ~]# hadoop fs -mkdir /rawdata
ディレクトリ内のファイルを表示します。
[root@master ~]# hadoop fs -ls /
Found 1 items
drwxr-xr-x - root supergroup 0 2019-07-25 10:43 /rawdata
マルチレベルディレクトリを作成します。
[root@master ~]# hadoop fs -mkdir -p /a/b/c
すべてのサブディレクトリを表示:
[root@master ~]# hadoop fs -ls -R /
drwxr-xr-x - root supergroup 0 2019-07-25 11:02 /a
drwxr-xr-x - root supergroup 0 2019-07-25 11:02 /a/b
drwxr-xr-x - root supergroup 0 2019-07-25 11:02 /a/b/c
drwxr-xr-x - root supergroup 0 2019-07-25 10:43 /rawdata
3.ローカルファイルをアップロードする
:2構文の種類があります-put
と-copyFromLocal
の違い:使用は-put
、と使用ファイルがすでに存在する場合、システムは、ファイルがすでに存在している表示されませんが、直接カバーする、-copyFromLocal
ファイルがすでに存在する場合、システムは、失敗したアップロードファイルが既に存在するプロンプトが表示されます。また-put
、標準入力を受け入れることができます。例
として以下を-put
取り上げます。
- ローカルファイルをhdfsの指定されたディレクトリにアップロードします。
[root@master ~]# hadoop fs -put /software/hadoop-2.6.5.tar.gz /a/b/c/
[root@master ~]# hadoop fs -ls /a/b/c/
Found 1 items
-rw-r--r-- 3 root supergroup 199635269 2019-07-25 11:35 /a/b/c/hadoop-2.6.5.tar.gz
- 一度に複数のファイルをアップロード:
[root@master ~]# hadoop fs -put /home/a /home/b /home/c /home/d /a/b/c
[root@master ~]# hadoop fs -ls /a/b/c
Found 5 items
-rw-r--r-- 3 root supergroup 0 2019-07-25 11:38 /a/b/c/a
-rw-r--r-- 3 root supergroup 0 2019-07-25 11:38 /a/b/c/b
-rw-r--r-- 3 root supergroup 0 2019-07-25 11:38 /a/b/c/c
-rw-r--r-- 3 root supergroup 0 2019-07-25 11:38 /a/b/c/d
-rw-r--r-- 3 root supergroup 199635269 2019-07-25 11:35 /a/b/c/hadoop-2.6.5.tar.gz
- 標準入力:
lsコマンドの結果は、hdfsファイルに直接インポートできます。
[root@master ~]# ls /software/hadoop-2.6.5/ |hadoop fs -put - /a/b/c/h.txt
-cat
ファイルの内容を表示するために使用します。
[root@master ~]# hadoop fs -cat /a/b/c/h.txt
bin
etc
hadoop_data
hdfs
include
lib
libexec
LICENSE.txt
logs
NOTICE.txt
README.txt
sbin
share
3. hdfsファイルをダウンロードする
構文は次の2種類があります-get
し、-copyToLocal
-get
例として以下を取り上げます。
hdfsのファイルをローカルにダウンロードします。
[root@master ~]# hadoop fs -get /a/b/c/a ./
[root@master ~]# ll
total 4
-rw-r--r--. 1 root root 0 Jul 25 14:39 a
-rw-------. 1 root root 1204 Jul 17 14:49 anaconda-ks.cfg
4. hdfsファイルをコピーして削除する
-cp
コマンドを使用してhdfsファイルをコピーし、-rm
コマンドを使用してhdfsファイルを削除します。
-cp
このコマンドは、フォルダー全体の内容をコピーできます。
[root@master ~]# hadoop fs -cp /a/b/c /rawdata
[root@master ~]# hadoop fs -ls -R /rawdata
drwxr-xr-x - root supergroup 0 2019-07-25 14:45 /rawdata/c
-rw-r--r-- 3 root supergroup 0 2019-07-25 14:44 /rawdata/c/a
-rw-r--r-- 3 root supergroup 0 2019-07-25 14:44 /rawdata/c/b
-rw-r--r-- 3 root supergroup 0 2019-07-25 14:44 /rawdata/c/c
-rw-r--r-- 3 root supergroup 0 2019-07-25 14:44 /rawdata/c/d
-rw-r--r-- 3 root supergroup 95 2019-07-25 14:44 /rawdata/c/h.txt
-rw-r--r-- 3 root supergroup 199635269 2019-07-25 14:45 /rawdata/c/hadoop-2.6.5.tar.gz
-rm
HDFSのコマンドは、ファイルを削除することができ、フォルダを削除するには、追加する必要があります-R
:
[root@master ~]# hadoop fs -rm -R /rawdata/*
19/07/25 14:49:08 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /rawdata/c
[root@master ~]# hadoop fs -ls -R /rawdata
グラフィカルインターフェイスを使用してhdfsを操作する
hdfs管理URLを開くにはWebを使用する必要があります:
http ://10.11.91.122:50070/
ホームページに入ったら、[ファイルシステムの参照]を選択します。
ブラウザディレクトリにディレクトリパスを入力して、パスの下にあるファイルを表示します。
ファイル名の接続をクリックして、ファイルの詳細なステータスを確認し、ダウンロードを提供します。