美文网首页
Hadoop2.x 基本操作命令

Hadoop2.x 基本操作命令

作者: georgeguo | 来源:发表于2018-08-13 20:31 被阅读118次

    1 集群的启动和停止

    格式化文件系统

    hdfs namenode -format
    
    • 格式化hdfs文件系统: hdfs namenode -format(主节点,只需要格式化一次就行,下次启动是无需执行)。

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

    sh sbin/start-dfs.sh
    sh sbin/start-yarn.sh
    sh sbin/mr-jobhistory-daemon.sh start historyserver
    
    • 启动hdfs,进入hadoop的安装目录,sh sbin/start-dfs.sh (要在hadoop的安装路径中,etc/hadoop/hadoop-env.sh中设置JAVA_HOME,否则启动时会报JAVA_HOME找不到的错误)。
    • 启动YARN,进入hadoop的安装目录,sh sbin/start-yarn.sh
    • 启动日志相关服务,进入hadoop的安装目录,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
    
    • 停止yarn,sh sbin/stop-yarn.sh
    • 停止dfs,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 // 关闭安全模式
    
    

    创建目录

    • hdfs dfs 查看命令帮助
    • hdfs dfs -mkdir DIR_NAME

    上传和下载文件

    • hdfs dfs -copyFromLocal local.txt /remote/remote.txt 将本地文件拷贝到DFS文件系统中
    • hdfs dfs -mvFromLocal local.txt /remote/remote.txt 将本地文件移动到DFS文件系统中
    • hdfs dfs -put local.txt /remote/remote.txt 将本地文件上传到DFS文件系统中(有点类似-copyFromLocal)
    • hdfs dfs -copyToLocal /remote/remote.txt local.txt 将HDFS文件拷贝到本地文件系统中
    • hdfs dfs -get /remote/remote.txt local.txt 将HDFS文件下载到本地文件系统中

    查看dfs文件系统中的文件

    • hdfs dfs -cat FILENAME
    • hdfs dfs -tail FILENAME

    删除dfs中的文件和目录

    • hdfs dfs -rm FILENAME
    • hdfs dfs -rmdir DIR_NAME

    并行的拷贝文件 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界面)

    • 方法1:mapred job -kill job_id
    • 方法2: 直接通过资源界面,找到对应的作业,"Kill Application"

    获取计数器的个数

    格式: 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
    

    相关文章

      网友评论

          本文标题:Hadoop2.x 基本操作命令

          本文链接:https://www.haomeiwen.com/subject/ggqpbftx.html