Hadoop2.x 基本操作命令

2018-08-13  本文已影响118人  georgeguo

1 集群的启动和停止

格式化文件系统

hdfs namenode -format

启动集群(注意启动顺序)

sh sbin/start-dfs.sh
sh sbin/start-yarn.sh
sh sbin/mr-jobhistory-daemon.sh start historyserver

停止集群(注意停止顺序)

sh sbin/stop-yarn.sh
sh sbin/stop-dfs.sh
sh sbin/mr-jobhistory-daemon.sh stop historyserver

通过集群启动分析Hadoop(DFS、YARN)的相关进程

sh sbin/start-dfs.sh之后,通过jps查看启动的进程。

启动hdfs之后

从上图可以看出,和DFS相关的进程主要是NameNode、SecondaryNameNode、DateNode。其中,NameNode、SecondaryNameNode位于主节点上,DataNode分别位于3个从节点上。

sh sbin/start-yarn.sh之后,再通过jps查看启动的进程,

启动YARN之后

从上图可以看出,和YARN相关的进程分别是ResourceManager、NodeManager。其中,ResourceManager位于主节点上,NodeManager位于各个从节点上。

2 HDFS相关命令

查看hdfs集群状态:

hdfs dfsamdin -report
hdfs dfsadmin -report -live
hdfs dfsadmin -report -dead
hdfs dfsadmin -report -decommissioning

hdfs dfsadmin -safemode enter //启动安全模式
hdfs dfsadmin -safemode leave // 关闭安全模式

创建目录

上传和下载文件

查看dfs文件系统中的文件

删除dfs中的文件和目录

并行的拷贝文件 distcp

将集群1的 /foo目录复制到集群2的/foo目录

hadoop distcp -update -delete -p hdfs://namenode1/foo   hdfs://namenode2/foo

若两个集群的HDFS版本不兼容,可以使用webHDFS协议

hadoop distcp -update -delete -p webhdfs://namenode1/foo \
webhdfs://namenode2/foo

常用命令的alias

可以将下面的alias添加到~/.bash_profile中,这样就可以简化输入命令的长度。

alias cdh='cd /usr/local/hadoop-2.6.5'
alias hls='hdfs dfs -ls'
alias hcpf='hdfs dfs -copyFromLocal'
alias hcpt='hdfs dfs -copyToLocal'
alias hrm='hdfs dfs -rm'
alias hrmdir='hdfs dfs -rmdir'
alias hmkdir='hdfs dfs -mkdir'
alias hcat='hdfs dfs -cat'
alias htail='hdfs dfs -tail'

web方式查看HDFS

http://master:50070

3 Web集群监控

4 YARN相关操作命令

提交任务给MapReduce集群

中断MapReduce任务(通过web界面)

获取计数器的个数

格式: mapred job -counter <job-id> <group-name> <counter-name>
举例:

mapred job  -counter job_1535252686216_0008 "Data statistic" "VALID_COUNT"

计算器可以通过mapred job命令获取,也可以调用API动态的读取计数器。

实验命令

第一个实验:计算文件中每个邮件出现的次数

hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar \
wordcount \
/data/email_log.txt \
/data/output

第二个实验:使用monte carlo估算PI值

hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar \
pi \
100 \
100

第三个实验:多任务提交,观察第一个任务占有所有资源之后,第二个任务会处于accept状态,等待yarn分配资源

hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar \
wordcount \
/data/email_log.txt \
/data/output1

hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar \
wordcount \
/data/email_log.txt \
/data/output2

第四个实验:提交多个任务,然后通过界面,中断任务,观察是否切换执行在等待的任务

hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar \
pi \
100 \
1000

hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar \
wordcount \
/data/email_log.txt \
/data/output2

第五个实验:运行一个自己写的mapreduce

hadoop jar /root/data/dailyAccessCount.jar /data/user_login.txt /data/userlogin

hadoop jar accessTimeSort.jar  /data/userlogin1/part-r-00000  /data/accesssort1
上一篇下一篇

猜你喜欢

热点阅读