hadoop常用命令(整理笔记)

个人笔记,自己查看使用。就不一一整理了。

hadoop

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
hdfs zkfc -formatZK(格式化zookeeper)
hadoop-daemon.sh start journalnode(启动journalnode)
hdfs namenode -format(格式化namenode metadata)
hadoop-daemon.sh start namenode
hadoop-daemon.sh start namenode -bootstrapStandby( standy namenode)
stop-dfs.sh
hadoop fsck / (检测hadoop数据状态)
start-yarn.sh (相当jobtracker)
start-dfs.sh (启动hdfs)
mr-jobhistory-daemon.sh start historyserver (启动historyserver 服务)

hdfs haadmin -failover nn2 nn1(切换namenode)
hdfs zkfc -formatZK(格式化zookeeper)

hadoop-daemon.sh start journalnode(启动journalnode)
hdfs namenode -format(格式化namenode metadata)
hadoop-daemon.sh start namenode
hadoop-daemon.sh start namenode -bootstrapStandby( standy namenode)
stop-dfs.sh
hadoop fsck / (检测hadoop数据状态)
start-yarn.sh (相当jobtracker)
start-dfs.sh (启动hdfs)

mr-jobhistory-daemon.sh start historyserver 启动historyserver 服务 (在 mapred-site.xml 里配置的, 在哪台机器上就在哪台机器上启动)

bin/hadoop dfsadmin -safemode enter 将集群置于安全模式
-safeadmin enter | leave | get | wait:安全模式命令。安全模式是NameNode的一种状态,在这种状态下,NameNode不接受对名字空间的更改(只读);不复制或删除块。NameNode在启动时自动进入安全模式,当配置块的最小百分数满足最小副本数的条件时,会自动离开安全模式。enter是进入,leave是离开。

bin/hadoop dfsadmin -report 显示Datanode列表

bin/hadoop dfsadmin -refreshNodes:重新读取hosts和exclude文件,使新的节点或需要退出集群的节点能够被NameNode重新识别。这个命令在新增节点或注销节点时用到。

bin/hadoop dfsadmin -decommission datanodename 使Datanode节点 datanodename退役

bin/hadoop dfsadmin -help 命令能列出所有当前支持的命令。比如:
* -report:报告HDFS的基本统计信息。有些信息也可以在NameNode Web服务首页看到。
* -safemode:虽然通常并不需要,但是管理员的确可以手动让NameNode进入或离开安全模式。
* -finalizeUpgrade:删除上一次升级时制作的集群备份。

HDFS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
hadoop-daemon.sh start zkfc
hadoop-daemon.sh start journalnode
hadoop-daemon.sh start namenode

hdfs haadmin -getServiceState nn1 得到nn1 或 nn2 状态
hdfs haadmin -failover nn2 nn1 (切换namenode)

DFS Used hadoop文件系统所使用的空间
Non DFS Used 非hadoop文件系统所使用的空间,比如说本身的linux系统使用的,或者存放的其它文件
Configured Capacity = DFS Used + Non-DFSUsed+ DFS Remaining

hadoop job -kill job_1441084173757_265601 停止正在执行的job

hadoop checknative -a 检查hdfs lib库,支持的压缩格式等信息

终端命令方式查看文件的块大小
./bin/hadoop fs -stat "%o" TEST/jdk-7u25-linux-x64.gz
51200 单位为B(字节)

start-balancer.sh 可以执行-threshold参数。
-threshold参数是指定平衡的阈值。
-threshold的默认是10,即每个datanode节点的实际hdfs存储使用量/集群hdfs存储量
hdfs balancer -threshold 5
start-balancer.sh -threshold 1

hadoop-daemon.sh start namenode -rollingUpgrade started 如果hadoop里有数据的话, 第一次启动namenode的时候用这个命令。
hadoop-daemon.sh start namenode -rollingUpgrade

export HADOOP_SLAVE_SLEEP=1
slaves.sh jps 就可以1秒查看一个节点。 HADOOP_SLAVE_SLEEP=2 2秒

hdfs namenode -recover

统计文件的行数 , 代表 统计 /tmp/wc/目录下所有文件的行数,并输出到 /tmp/out_wc 查看结果 hadoop fs -cat /tmp/out_wc/* 即可
hadoop jar /home/hadoop/apache-hadoop/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.7.2.jar -input /tmp/wc/ -output /tmp/out_wc -mapper /bin/cat -reducer /usr/bin/wc

目录配额
hadoop fs -count -q /user/tc 查看配置设置
hadoop dfsadmin -setSpaceQuota 100g /user/tc 设置配置 100g
hadoop dfsadmin -clrSpaceQuota /user/tc 取消配额

hadoop fs -setrep 3 /input/test.txt --设置hdfs的文件副本数量
hadoop fs -setrep -R 3 < hdfs path >

改变一个文件在hdfs中的副本个数,上述命令中数字3为所设置的副本个数,-R选项可以对一个人目录下的所有目录+文件递归执行改变副本个数的操作

bin/hadoop fs -help command-name 显示关于某个命令的详细信息

bin/hadoop job -history output-dir 用户可使用以下命令在指定路径下查看历史日志汇总

hadoop archive -archiveName NAME *
-archiveName NAME 要创建的档案的名字。
src 文件系统的路径名,和通常含正则表达的一样。
dest 保存档案文件的目标目录。

递归地拷贝文件或目录
$ hadoop distcp
srcurl 源Url
desturl 目标Url

运行HDFS文件系统检查工具(fsck tools)

用法:hadoop fsck [GENERIC_OPTIONS]
命令选项 描述
-move 移动受损文件到/lost+found
-delete 删除受损文件。
-openforwrite 打印出写打开的文件。
-files 打印出正被检查的文件。
-blocks 打印出块信息报告。
-locations 打印出每个块的位置信息。
-racks 打印出data-node的网络拓扑结构。

Yarn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
yarn rmadmin -getServiceState rm2   得到 rm1 或 rm2 的状态
yarn rmadmin -transitionToActive rm2 --forcemanual 切换 rm2 为主

yarn node -list
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
yarn rmadmin -refreshQueues 队列刷新

yarn application -list
yarn application -status application_1499826928702_868175
yarn application -kill application_1499826928702_868175
yarn logs -applicationId appid 查看日志

ws/v1/cluster/apps?states=RUNNING
http://namenode00.host-mtime.com:8088/ws/v1/cluster/apps?states=RUNNING
curl --compressed -H "Accept: application/json" -X GET "http://lyhadoop4.com:8088/ws/v1/cluster/apps/application_1465461051654_0001"

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html api 接口

job 的cpu使用
http://namenode01.host-mtime.com:19888/jobhistory/jobcounters/job_1494493840980_428367
查找 CPU time spent (ms) 中的 total 值

job 内存
http://namenode01.host-mtime.com:19888/jobhistory/conf/job_1494493840980_428367
查找 (mapreduce.map.memory.mb * map数) + (mapreduce.reduce.memory.mb * reduce数)
map 和 reduce 数 可以在 http://namenode01.host-mtime.com:19888/jobhistory/job/job_1494493840980_428367 中找到


job 的 io
http://namenode01.host-mtime.com:19888/jobhistory/jobcounters/job_1494493840980_428367
查找 FILE: Number of bytes read + FILE: Number of bytes written + HDFS: Number of bytes read + ( HDFS: Number of bytes written * 3 )
HDFS: Number of bytes written *3 是因为一个文件要写三份。

job的sql
http://namenode01.host-mtime.com:19888/jobhistory/conf/job_1494493840980_428367
查找 hive.query.string 得到的是 urlencode 可以在转码网站上解码。
正在运行的job查看sql http://namenode01.host-mtime.com:8088/proxy/application_1499826928702_1021497/mapreduce/job/job_1499826928702_1021497
点击 running -> application ID -> Tracking URL: ApplicationMaster -> job ID -> Configuration 页面中查找 hive.query.string

shell 解码 urlencode
echo "hive.query.string urlencode 内容" > urlfile.txt
for url in `cat urlfile.txt`
do
printf $(echo -n $url | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n"
done

yarn 测试
1) hadoop jar /home/hadoop/apache-hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar pi 100 10000

2) hdfs dfs -put words.txt hdfs://cloud01:9000/
hadoop jar //home/hadoop/apache-hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /words.txt /output


用于和Map Reduce作业交互和命令(jar)

用法:hadoop job [GENERIC_OPTIONS] [-submit ] | [-status ] | [-counter ] | [-kill ] | [-events <#-of-events>] | [-history [all] ] | [-list [all]] | [-kill-task ] | [-fail-task ]
命令选项 描述
-submit 提交作业
-status 打印map和reduce完成百分比和所有计数器。
-counter 打印计数器的值。
-kill 杀死指定作业。
-events <#-of-events> 打印给定范围内jobtracker接收到的事件细节。
-history [all] -history 打印作业的细节、失败及被杀死原因的细节。更多的关于一个作业的细节比如 成功的任务,做过的任务尝试等信息可以通过指定[all]选项查看。
-list [all] -list all 显示所有作业。-list只显示将要完成的作业。
-kill-task 杀死任务。被杀死的任务不会不利于失败尝试。
-fail-task 使任务失败。被失败的任务会对失败尝试不利。

Spark

1
2
3
4
5
6
spark slave 单独启动
./start-slave.sh spark://namenode00.host-mtime.com:7077

/sbin/start-slave.sh spark://shdx006:7077,shdx007:7077

http://spark.apache.org/docs/latest/monitoring.html#rest-api api 接口

Hbase

1
2
3
4
5
6
7
8
9
10
11
./bin/hbase-daemon.sh start master         启动master
./bin/hbase-daemon.sh start master --backup 启动baskup
hbase-daemon.sh start thrift

./hbase-daemon.sh stop master 停掉master
hbase-daemon.sh start regionserver

balance:
balance_switch true 开启自动balance
balance_switch false 关闭自动balance
查看balance状态命令是: balancer_enabled
感谢您的支持!