問題導(dǎo)讀
1.hadoop daemonlog管理員命令的作用是什么鳍悠?
2.hadoop如何運(yùn)行一個類酗电,如何運(yùn)行一個jar包冤馏?
3.hadoop archive的作用是什么监署?
[圖片上傳中...(image-2a4785-1523504811054-0)]
概述
hadoop命令被bin/hadoop 腳本調(diào)用. 運(yùn)行hadoop腳本不帶任何命令將打印命令相關(guān)描述颤专。
Usage: hadoop [--config confdir] [--loglevel loglevel] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
|
FIELD
|
Description
|
|
--config confdir
|
覆蓋默認(rèn)配置文件目錄。默認(rèn)路徑${HADOOP_HOME}/conf.
|
|
--loglevel loglevel
|
覆蓋日志級別. 有效日志級別為FATAL, ERROR, WARN, INFO, DEBUG, 和 TRACE. 默認(rèn)是 INFO.
|
|
GENERIC_OPTIONS
|
多項命令共同支持的選項
|
|
COMMAND_OPTIONS
|
hadoop子項目文檔描述了hadoop命令的選項钠乏。hdfs和YARN在其它文檔那個
|
Hadoop 通用選項
Many subcommands honor a common set of configuration options to alter their behavior:
|
GENERIC_OPTION
|
Description
|
|
-archives <comma separated list of archives>
|
Specify comma separated archives to be unarchived on the compute machines. Applies only to job.
|
|
-conf <configuration file>
|
指定應(yīng)用程序配置文件
|
|
-D <property>=<value>
|
使用一個給定的屬性值
|
|
-files <comma separated list of files>
|
指定文件復(fù)制到mapredue集群栖秕。僅適用于job.
|
|
-jt <local> or <resourcemanager:port>
|
指定ResourceManager.僅適用于job.
|
|
-libjars <comma seperated list of jars>
|
指定jar文件包括所在classpath.僅適用于job.
|
Hadoop 通用命令
所有這些命令都是從Hadoop的shell命令執(zhí)行。他們被分成用戶命令和管理員命令【 User Commands 和 Admininistration Commands.】
用戶命令
用于Hadoop集群用戶命令晓避。
archive
創(chuàng)建一個Hadoop檔案簇捍,更多信息查看 Hadoop Archives Guide.
checknative
用法: hadoop checknative [-a] [-h]
|
COMMAND_OPTION
|
Description
|
|
-a
|
檢查所有庫
|
|
-h
|
打印幫助
|
這個命令檢查Hadoop本地代碼的可用性。更多信息查看 #NativeLibraries.html俏拱。默認(rèn)暑塑,此命令只檢查libhadoop的可用性。
classpath
用法: hadoop classpath [--glob |--jar <path> |-h |--help]
|
COMMAND_OPTION
|
Description
|
|
--glob
|
通配符
|
|
--jar path
|
jar路徑
|
|
-h, --help
|
打印幫助
|
打印classpath需要Hadoop的jar和需要的庫類路徑锅必。如果不帶參數(shù)調(diào)用事格,然后打印的命令腳本設(shè)置classpath。這可能包含通配符
credential
用法:hadoop credential <subcommand> [options]
|
COMMAND_OPTION
|
Description
|
|
create alias [-provider provider-path]
|
提示證書被存儲為指定別名的用戶搞隐。如果沒有-provider選項的話驹愚,那么將會默認(rèn)使用core-site.xml文件中hadoop.security.credential.provider.path項對應(yīng)的值。
|
|
delete alias [-provider provider-path] [-f]
|
刪除與所提供的別名對應(yīng)的證書文件劣纲。如果沒有-provider選項的話逢捺,那么將會默認(rèn)使用core-site.xml文件中hadoop.security.credential.provider.path項對應(yīng)的值。這項操作需要通過用戶的確認(rèn)癞季,除非使用了-f選項劫瞳。
|
|
list [-provider provider-path]
|
列出所有的證書別名。如果沒有-provider選項的話绷柒,那么將會默認(rèn)使用core-site.xml文件中hadoop.security.credential.provider.path項對應(yīng)的值志于。
|
該命令在憑證提供者內(nèi)部管理憑證(credentials),密碼(passwords)和秘密(secrets)辉巡。
Hadoop的CredentialProvider API支持應(yīng)用程序拆分恨憎,并且要求拆分后的應(yīng)用如何儲存所需的密碼(passwords)和秘密(secrets)。為了指明一個Provider的位置和類型,需要在core-site.xml添加hadoop.security.credential.provider.path配置項憔恳,或者通過指令中-provider命令選項進(jìn)行設(shè)置瓤荔。Provider路徑是一串以逗號分割的URL字符串。這些字符串會說明Provider的類型和位置钥组,舉個例子:
[Bash shell] 純文本查看 復(fù)制代碼
|
1
|
user:``///``,jceks:``//file/tmp/test``.jceks,jceks:``/hdfs``@nn1.example.com``/my/path/test``.jceks
|
指示當(dāng)前用戶的憑證输硝,需要通過User Provider咨詢。存儲在本地文件系統(tǒng)的文件/tmp/test.jceks是一個Java Keystore Provider程梦,相應(yīng)的存儲在hdfs上的文件nn1.example.com/my/path/test.jcek也是一個Java Keystore Provider点把。
當(dāng)使用credential命令時,它通常要提供密碼(password)或秘密(secret)給一個特定的憑證存儲provider屿附。為了清晰的表明要顯示使用哪個provider存儲郎逃,可以在命令中使用-provider選項。否則挺份,給定多個provider的時候褒翰,則使用的哥非持久的provider,這可能不是你預(yù)期的
例如:
[Bash shell] 純文本查看 復(fù)制代碼
|
1
|
hadoop credential list -provider jceks:``//file/tmp/test``.jceks
|
distcp
遞歸的拷貝文件或者目錄匀泊。更多信息查看 Hadoop DistCp Guide.
fs
這個命令在文檔 File System Shell Guide 优训。 和hdfs腳本的dfs類似
jar
用法: hadoop jar <jar> [mainClass] args...
運(yùn)行一個jar文件使用yarn啟動yarn應(yīng)用程序
key
通過KeyProvider管理秘鑰
trace
查看和修改Hadoop跟蹤(tracing)設(shè)置。查看:跟蹤(tracing)指南各聘。
Tracing Guide.
version
用法: hadoop version
打印版本
CLASSNAME
用法: hadoop CLASSNAME
運(yùn)行一個類
管理員命令
集群管理員命令
daemonlog
用法:
[Bash shell] 純文本查看 復(fù)制代碼
|
1
2
|
hadoop daemonlog -getlevel <host:httpport> <classname>
hadoop daemonlog -setlevel <host:httpport> <classname> <level>
|
|
COMMAND_OPTION
|
Description
|
|
-getlevel host:httpportclassname
|
打印運(yùn)行在<host:port>的守護(hù)進(jìn)程的日志級別揣非。這個命令內(nèi)部會連接http://<host:port>/logLevel?log=<name>
|
|
-setlevel host:httpportclassname level
|
設(shè)置運(yùn)行在<host:port>的守護(hù)進(jìn)程的日志級別。這個命令內(nèi)部會連接http://<host:port>/logLevel?log=<name>
|
設(shè)置或獲取指定后臺進(jìn)程的日志級別
[Bash shell] 純文本查看 復(fù)制代碼
|
1
|
Example: $ bin``/hadoop
daemonlog -setlevel 127.0.0.1:50070 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG
|