すべてのHadoopコマンドとサブプロジェクトは、同じ基本的な構造に従います。
使用法: shellcommand [SHELL_OPTIONS] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
フィールド | 説明 |
---|---|
shellcommand | 呼び出されるプロジェクトのコマンド。たとえば、Hadoop Commonではhadoop 、HDFSではhdfs 、YARNではyarn を使用します。 |
SHELL_OPTIONS | Javaを実行する前にシェルが処理するオプション。 |
COMMAND | 実行するアクション。 |
GENERIC_OPTIONS | 複数のコマンドでサポートされる共通のオプションセット。 |
COMMAND_OPTIONS | Hadoop Commonサブプロジェクトに関するこのドキュメントでは、さまざまなコマンドとそのオプションについて説明します。HDFSとYARNは、他のドキュメントで説明されています。 |
すべてのシェルコマンドは、共通のオプションセットを受け入れます。一部のコマンドでは、これらのオプションは無視されます。たとえば、単一のホストでのみ実行されるコマンドで---hostnames
を渡しても無視されます。
SHELL_OPTION | 説明 |
---|---|
--buildpaths |
開発者バージョンのjarを有効にします。 |
--config confdir |
デフォルトの構成ディレクトリを上書きします。デフォルトは$HADOOP_HOME/etc/hadoop です。 |
--daemon mode |
コマンドがデーモン化をサポートしている場合(例: hdfs namenode )、適切なモードで実行します。サポートされているモードは、プロセスをデーモンモードで開始するstart 、プロセスを停止するstop 、プロセスのアクティブな状態を判別するstatus です。status は、LSB準拠の結果コードを返します。オプションが指定されていない場合、デーモン化をサポートするコマンドはフォアグラウンドで実行されます。デーモン化をサポートしていないコマンドの場合、このオプションは無視されます。 |
--debug |
シェルレベルの構成デバッグ情報を有効にします |
--help |
シェルスクリプトの使用情報。 |
--hostnames |
--workers を使用する場合、マルチホストサブコマンドを実行するホスト名のスペース区切りリストでワーカーファイルを上書きします。--workers を使用しない場合、このオプションは無視されます。 |
--hosts |
--workers を使用する場合、マルチホストサブコマンドを実行するホスト名のリストを含む別のファイルでワーカーファイルを上書きします。--workers を使用しない場合、このオプションは無視されます。 |
--loglevel loglevel |
ログレベルを上書きします。有効なログレベルは、FATAL、ERROR、WARN、INFO、DEBUG、およびTRACEです。デフォルトはINFOです。 |
--workers |
可能であれば、workers ファイル内のすべてのホストでこのコマンドを実行します。 |
多くのサブコマンドは、その動作を変更するために共通の構成オプションセットを尊重します。
GENERIC_OPTION | 説明 |
---|---|
-archives <アーカイブのカンマ区切りリスト> |
計算マシンで解凍するアーカイブをカンマ区切りで指定します。ジョブにのみ適用されます。 |
-conf <構成ファイル> |
アプリケーション構成ファイルを指定します。 |
-D <property>=<value> |
指定されたプロパティに値を使用します。 |
-files <ファイルのカンマ区切りリスト> |
マップリデュースクラスタにコピーするファイルをカンマ区切りで指定します。ジョブにのみ適用されます。 |
-fs <file:///> または <hdfs://namenode:port> |
使用するデフォルトのファイルシステムURLを指定します。構成の「fs.defaultFS」プロパティを上書きします。 |
-jt <local> または <resourcemanager:port> |
ResourceManagerを指定します。ジョブにのみ適用されます。 |
-libjars <jarファイルのカンマ区切りリスト> |
クラスパスに含めるjarファイルをカンマ区切りで指定します。ジョブにのみ適用されます。 |
Hadoopクラスタのユーザーに役立つコマンド。
archive
Hadoopアーカイブを作成します。詳細については、Hadoopアーカイブガイドを参照してください。
checknative
使用法: hadoop checknative [-a] [-h]
COMMAND_OPTION | 説明 |
---|---|
-a |
すべてのライブラリが利用可能かどうかを確認します。 |
-h |
ヘルプを表示します |
このコマンドは、Hadoopネイティブコードの可用性をチェックします。詳細については、ネイティブライブラリを参照してください。デフォルトでは、このコマンドはlibhadoopの可用性のみをチェックします。
classpath
使用法: hadoop classpath [--glob |--jar <path> |-h |--help]
COMMAND_OPTION | 説明 |
---|---|
--glob |
ワイルドカードを展開します |
--jar path |
pathという名前のjarにマニフェストとしてクラスパスを書き込みます |
-h 、--help |
ヘルプを表示します |
Hadoop jarと必要なライブラリを取得するために必要なクラスパスを出力します。引数なしで呼び出された場合は、コマンドスクリプトによって設定されたクラスパスを出力します。これには、クラスパスエントリにワイルドカードが含まれている可能性があります。追加のオプションは、ワイルドカード展開後のクラスパスを出力するか、クラスパスをjarファイルのマニフェストに書き込みます。後者は、ワイルドカードを使用できず、展開されたクラスパスがサポートされている最大コマンドライン長を超える環境で役立ちます。
conftest
使用法: hadoop conftest [-conffile <path>]...
COMMAND_OPTION | 説明 |
---|---|
-conffile |
検証する構成ファイルまたはディレクトリのパス |
-h 、--help |
ヘルプを表示します |
構成XMLファイルを検証します。-conffile
オプションが指定されていない場合、${HADOOP_CONF_DIR}
内の名前が.xmlで終わるファイルが検証されます。指定された場合は、そのパスが検証されます。ファイルまたはディレクトリのいずれかを指定できます。ディレクトリを指定した場合、そのディレクトリ内の名前が.xml
で終わるファイルが検証されます。-conffile
オプションを複数回指定できます。
検証は非常に最小限です。XMLが解析され、重複したプロパティ名と空のプロパティ名がチェックされます。このコマンドはXIncludeをサポートしていません。設定項目を取り込むためにXIncludeを使用している場合、XMLファイルは無効であると宣言されます。
credential
使用法: hadoop credential <サブコマンド> [オプション]
COMMAND_OPTION | 説明 |
---|---|
create alias [-provider provider-path] [-strict] [-value credential-value] | 指定されたエイリアスとして保存する資格情報をユーザーに要求します。-provider が指定されていない限り、core-site.xml ファイル内の hadoop.security.credential.provider.path が使用されます。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。プロンプトを表示する代わりに、-value フラグを使用して資格情報値 (別名、エイリアスパスワード) を指定します。 |
delete alias [-provider provider-path] [-strict] [-f] | 指定されたエイリアスを持つ資格情報を削除します。-provider が指定されていない限り、core-site.xml ファイル内の hadoop.security.credential.provider.path が使用されます。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。-f が指定されていない限り、コマンドは確認を求めます。 |
list [-provider provider-path] [-strict] | すべての資格情報エイリアスを一覧表示します。-provider が指定されていない限り、core-site.xml ファイル内の hadoop.security.credential.provider.path が使用されます。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。 |
check alias [-provider provider-path] [-strict] | 指定されたエイリアスのパスワードを確認します。-provider が指定されていない限り、core-site.xml ファイル内の hadoop.security.credential.provider.path が使用されます。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。 |
資格情報プロバイダー内の資格情報、パスワード、およびシークレットを管理するコマンド。
HadoopのCredentialProvider APIを使用すると、アプリケーションと、必要なパスワード/シークレットの保存方法を分離できます。特定のプロバイダータイプと場所を示すには、core-site.xml内の hadoop.security.credential.provider.path 設定要素を指定するか、次の各コマンドでコマンドラインオプション -provider
を使用する必要があります。このプロバイダーパスは、参照する必要のあるプロバイダーのタイプと場所を示すコンマ区切りのURLのリストです。たとえば、次のパス: user:///,jceks://file/tmp/test.jceks,jceks://hdfs@nn1.example.com/my/path/test.jceks
現在のユーザーの資格情報ファイルをUser Providerを通じて参照し、/tmp/test.jceks
にあるローカルファイルがJava Keystore Providerであり、nn1.example.com/my/path/test.jceks
のHDFS内にあるファイルもJava Keystore Providerのストアであることを示します。
credentialコマンドを使用する場合、多くの場合、特定の資格情報ストアプロバイダーにパスワードまたはシークレットをプロビジョニングするために使用されます。使用するプロバイダーストアを明示的に示すには、-provider
オプションを使用する必要があります。それ以外の場合は、複数のプロバイダーのパスが指定されていると、最初の非一時プロバイダーが使用されます。これが意図したものかどうかはわかりません。
プロバイダーは、パスワードまたはその他のシークレットを提供する必要があることがよくあります。プロバイダーがパスワードを必要としていて、パスワードが見つからない場合、デフォルトのパスワードを使用し、デフォルトのパスワードが使用されているという警告メッセージを出力します。-strict
フラグが指定されている場合、警告メッセージはエラーメッセージになり、コマンドはエラー状態で即座に返されます。
例: hadoop credential list -provider jceks://file/tmp/test.jceks
distch
使用法: hadoop distch [-f urilist_url] [-i] [-log logdir] path:owner:group:permissions
COMMAND_OPTION | 説明 |
---|---|
-f |
変更するオブジェクトのリスト |
-i |
失敗を無視する |
-log |
出力ログを記録するディレクトリ |
多くのファイルの所有権と権限を一度に変更します。
distcp
ファイルまたはディレクトリを再帰的にコピーします。詳細については、Hadoop DistCpガイドをご覧ください。
dtutil
使用法: hadoop dtutil [-keytab
keytab_file -principal
principal_name ]
subcommand [-format (java|protobuf)] [-alias
alias ] [-renewer
renewer ]
filename…
資格情報ファイル内のhadoop委任トークンをフェッチおよび管理するユーティリティ。よりシンプルなコマンド fetchdt
を置き換えることを目的としています。複数のサブコマンドがあり、それぞれに独自のフラグとオプションがあります。
ファイルを出力するすべてのサブコマンドでは、-format
オプションは使用する内部形式を指定します。java
は fetchdt
に一致するレガシー形式です。デフォルトは protobuf
です。
サービスに接続するすべてのサブコマンドには、認証に使用するKerberosプリンシパル名とkeytabファイルを指定するための便利なフラグが用意されています。
サブコマンド | 説明 |
---|---|
print [-alias alias ] filename [ filename2 ...] |
filename (および filename2 …) に含まれるトークンのフィールドを出力します。 alias が指定されている場合は、alias に一致するトークンのみを出力します。それ以外の場合は、すべてのトークンを出力します。 |
get URL[-service scheme ] [-format (java|protobuf)] [-alias alias ] [-renewer renewer ] filename |
URL でサービスからトークンをフェッチし、filename に配置します。 URL は必須であり、 get の直後に記述する必要があります。URL は、サービスURL (例: hdfs://127.0.0.1:9000) です。 alias は、トークン内のサービスフィールドを上書きします。 これは、外部名と内部名を持つホスト (例: firewall.com:14000) を対象としています。 filename は最後に記述する必要があり、トークンファイルの名前です。 存在しない場合は作成されます。それ以外の場合は、トークンが既存のファイルに追加されます。 -service フラグは、http または https で始まるURLでのみ使用する必要があります。次のように同等です。hdfs://127.0.0.1:9000/ vs. https://127.0.0.1:9000 -service hdfs |
append [-format (java|protobuf)] filename filename2 [ filename3 ...] |
最初の N 個のファイルの内容を最後のファイルに追加します。 共通のサービスフィールドを持つトークンが複数のファイルに存在する場合、以前のファイルのトークンは上書きされます。 つまり、最後のファイルにあるトークンは常に保持されます。 |
remove -alias alias[-format (java|protobuf)] filename [ filename2 ...] |
指定された各ファイルから、alias に一致するトークンを削除し、指定された形式を使用して各ファイルを出力します。 alias を指定する必要があります。 |
cancel -alias alias[-format (java|protobuf)] filename [ filename2 ...] |
remove と同様ですが、トークンオブジェクトで指定されたサービスを使用してトークンもキャンセルされます。alias を指定する必要があります。 |
renew -alias alias[-format (java|protobuf)] filename [ filename2 ...] |
指定された各ファイルについて、alias に一致するトークンを更新し、指定された形式を使用して各ファイルを出力します。 alias を指定する必要があります。 |
import base64[-alias alias ] filename |
base64トークンからトークンをインポートします。 alias は、トークン内のサービスフィールドを上書きします。 |
fs
このコマンドについては、ファイルシステムシェルガイドで説明されています。HDFSが使用されている場合、これは hdfs dfs
の同義語です。
gridmix
Gridmixは、Hadoopクラスターのベンチマークツールです。詳細については、Gridmixガイドをご覧ください。
jar
使用法: hadoop jar <jar> [mainClass] args...
jarファイルを実行します。
代わりにYARNアプリケーションを起動するには、yarn jar
を使用します。
jnipath
使用法: hadoop jnipath
計算された java.library.path を出力します。
kerbname
使用法: hadoop kerbname principal
auth_to_localルールを介して名前付きプリンシパルをHadoopユーザー名に変換します。
例: hadoop kerbname user@EXAMPLE.COM
kdiag
使用法: hadoop kdiag
Kerberosの問題を診断します
key
使用法: hadoop key <サブコマンド> [オプション]
COMMAND_OPTION | 説明 |
---|---|
create keyname [-cipher cipher] [-size size] [-description description] [-attr attribute=value] [-provider provider] [-strict] [-help] | -provider 引数で指定されたプロバイダー内で、keyname 引数で指定された名前の新しいキーを作成します。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。-cipher 引数で暗号を指定できます。現在のデフォルトの暗号は「AES/CTR/NoPadding」です。デフォルトのキーサイズは128です。-size 引数を使用して、要求されたキーの長さを指定できます。-attr 引数を使用して、任意の attribute=value スタイルの属性を指定できます。-attr は、属性ごとに複数回指定できます。 |
roll keyname [-provider provider] [-strict] [-help] | -provider 引数を使用して指定されたプロバイダー内で、指定されたキーの新しいバージョンを作成します。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。 |
delete keyname [-provider provider] [-strict] [-f] [-help] | -provider で指定されたプロバイダー内から、keyname 引数で指定されたキーのすべてのバージョンを削除します。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。-f が指定されていない限り、コマンドはユーザーの確認を求めます。 |
list [-provider provider] [-strict] [-metadata] [-help] | core-site.xmlで構成されているか、-provider 引数で指定された特定のプロバイダーに含まれるキー名を一覧表示します。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。-metadata はメタデータを表示します。 |
check keyname [-provider provider] [-strict] [-help] | core-site.xmlで構成されているか、-provider 引数で指定された特定のプロバイダーに含まれるkeynameのパスワードを確認します。-strict フラグを指定すると、プロバイダーがデフォルトのパスワードを使用している場合にコマンドが失敗します。 |
| -help | このコマンドの使用法を出力します |
KeyProviderを介してキーを管理します。KeyProviderの詳細については、透過的な暗号化ガイドをご覧ください。
プロバイダーは、パスワードまたはその他のシークレットを提供する必要があることがよくあります。プロバイダーがパスワードを必要としていて、パスワードが見つからない場合、デフォルトのパスワードを使用し、デフォルトのパスワードが使用されているという警告メッセージを出力します。-strict
フラグが指定されている場合、警告メッセージはエラーメッセージになり、コマンドはエラー状態で即座に返されます。
注: 一部のKeyProvider (例: org.apache.hadoop.crypto.key.JavaKeyStoreProvider) は、大文字のキー名をサポートしていません。
注: 一部のKeyProviderは、キーの削除を直接実行しません (たとえば、誤った削除を防ぐために、代わりにソフト削除を実行したり、実際の削除を遅らせたりします)。このような場合、削除後に同じ名前のキーを作成/削除するとエラーが発生する可能性があります。詳細については、基盤となるKeyProviderを確認してください。
kms
使用法: hadoop kms
Key Management ServerであるKMSを実行します。
trace
Hadoopトレーシング設定を表示および変更します。トレーシングガイドを参照してください。
version
使用法: hadoop version
バージョンを表示します。
CLASSNAME
使用法: hadoop CLASSNAME
CLASSNAME
という名前のクラスを実行します。クラスはパッケージの一部である必要があります。
envvars
使用法: hadoop envvars
計算された Hadoop 環境変数を表示します。
Hadoop クラスタの管理者にとって役立つコマンドです。
daemonlog
使用法
hadoop daemonlog -getlevel <host:port> <classname> [-protocol (http|https)] hadoop daemonlog -setlevel <host:port> <classname> <level> [-protocol (http|https)]
COMMAND_OPTION | 説明 |
---|---|
-getlevel host:port classname [-protocol (http|https)] |
host:port で実行中のデーモンで、完全修飾された classname で識別されるログのログレベルを表示します。-protocol フラグは接続のプロトコルを指定します。 |
-setlevel host:port classname level [-protocol (http|https)] |
host:port で実行中のデーモンで、完全修飾された classname で識別されるログのログレベルを設定します。-protocol フラグは接続のプロトコルを指定します。 |
デーモン内の完全修飾クラス名で識別されるログのログレベルを動的に取得/設定します。デフォルトでは、コマンドは HTTP リクエストを送信しますが、-protocol https
引数を使用して HTTPS リクエストを送信することで上書きできます。
例
$ bin/hadoop daemonlog -setlevel 127.0.0.1:9870 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG $ bin/hadoop daemonlog -getlevel 127.0.0.1:9871 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG -protocol https
設定は永続的ではなく、デーモンが再起動されるとリセットされることに注意してください。このコマンドは、デーモンの内部 Jetty サーブレットに HTTP/HTTPS リクエストを送信することで機能するため、次のデーモンをサポートします。
このファイルには、すべての Hadoop シェルコマンドで使用されるグローバル設定が保存されます。
このファイルを使用すると、上級ユーザーが一部のシェル機能を上書きできます。
これは、個々のユーザーの個人環境を保存します。hadoop-env.sh および hadoop-user-functions.sh ファイルの後に処理され、同じ設定を含めることができます。