千家信息网

hadoop常用命令总结

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,hadoop常用命令集群节点服务启停hdfs文件系统管理yarn资源集群管理hadoop启动过程集群节点服务启停如图所示脚本所在路径:主要分类类命令:管理hdfs和管理yarn资源服务启动方式:分别启
千家信息网最后更新 2025年02月01日hadoop常用命令总结

hadoop常用命令

  • 集群节点服务启停
  • hdfs文件系统管理
  • yarn资源集群管理
  • hadoop启动过程

  • 集群节点服务启停
    如图所示脚本所在路径:主要分类类命令:管理hdfs和管理yarn资源
    服务启动方式:分别启动各节点服务、集群脚本启动整个服务。

    • 单独启停nn、dn服务

      hadoop-daemon.sh namenode | datanode | journalnode |zkfc
      hadoop-daemons.sh namenode | datanode |z kfc#表示启动集群内所有dn/nn服务

    • 启动yarn服务

      yarn-daemon.sh start |stop resourcemanager | nodemanager | proxyserver
      yarn-daemons.sh start |stop resourcemanager | nodemanager | proxyserver #表示启动yarn集群内所有rm/nm等服务

    • 启动MapReduce任务历史服务

      mr-jobhistory-daemon.sh start | stop historyserver

    [root@hadoop1 ~]# hadoop-daemons.sh start journalnodehadoop1: starting journalnode, logging to /hadoop/soft/hadoop-2.7.7/logs/hadoop-root-journalnode-hadoop1.outhadoop2: starting journalnode, logging to /hadoop/soft/hadoop-2.7.7/logs/hadoop-root-journalnode-hadoop2.outhadoop3: starting journalnode, logging to /hadoop/soft/hadoop-2.7.7/logs/hadoop-root-journalnode-hadoop3.out[root@hadoop1 ~]# jps1628 JournalNode1663 Jps[root@hadoop1 ~]# ssh hadoop2 jps1513 Jps1452 JournalNode[root@hadoop1 ~]# ssh hadoop3 jps1473 Jps1412 JournalNode
    • 脚本管理所有服务:需要配置ssh互信以及配置slaves文件

      start-dfs.sh | stop-dfs.sh #启停所有hdfs服务
      start-yarn.sh | stop-yarn.sh #启停所有yarn服务
      start-all.sh | stop-all.sh #可以启停所有hdfs、yarn服务,这两个脚本即将废弃,建议使用上面两个脚本管理服务。


  • hdfs文件系统管理
    • hadoop命令使用
      Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]fs                   run a generic filesystem user client#运行一个文件系统客户端version              print the version #查看版本信息jar             run a jar file #运行jar文件,注使用**yarn jar**运行yarn应用distcp    #递归复制文件或目录;DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成archive -archiveName NAME -p  *  #创建hadoop归档文件classpath            #列出所需要的类库  

      bash$ hadoop distcp hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo

    • 用户文件系统管理相关命令:操作基本类似Linux
      [root@hadoop2 ~]# hadoop/hdfs  fsUsage: hadoop fs [generic options][-cat [-ignoreCrc]  ...]  #查看文件内容[-checksum  ...] #查看文件校验码[-chgrp [-R] GROUP PATH...]  #修改文件属组[-chmod [-R]  PATH...] #修改文件权限[-chown [-R] [OWNER][:[GROUP]] PATH...] #修改文件属主或属组[-copyFromLocal [-f] [-p] [-l]  ... ] #复制本地文件到hdfs文件系统,类似put命令[-copyToLocal [-p] [-ignoreCrc] [-crc]  ... ] #复制hdfs文件到本地,类似get命令[-cp [-f] [-p | -p[topax]]  ... ] #允许多源复制操作 ,目标路径必须是目录[-createSnapshot  []] #创建快照[-deleteSnapshot  ] #删除快照[-df [-h] [ ...]] #显示文件系统使用空间[-du [-s] [-h]  ...] #显示某个目录内包含的文件的大小,目录占用空间大小,与Linux命令一样[-find  ...  ...] #查找文件[-get [-p] [-ignoreCrc] [-crc]  ... ][-getfacl [-R] ][-getfattr [-R] {-n name | -d} [-e en] ][-help [cmd ...]] #查看帮助[-ls [-d] [-h] [-R] [ ...]]  #替代"hadoop fs -ls -R"[-mkdir [-p]  ...] #创建目录[-moveFromLocal  ... ][-moveToLocal  ][-mv  ... ][-put [-f] [-p] [-l]  ... ][-renameSnapshot   ][-rm [-f] [-r|-R] [-skipTrash]  ...][-rmdir [--ignore-fail-on-non-empty]  ...][-setfacl [-R] [{-b|-k} {-m|-x } ]|[--set  ]][-setfattr {-n name [-v value] | -x name} ][-stat [format]  ...] [-tail [-f] ][-test -[defsz] ] #测试命令 ,-d是否为目录,-e文件是否存在,-z是否为空文件,用法一样[-text [-ignoreCrc]  ...][-touchz  ...] #创建 0字节空文件[-truncate [-w]   ...][-usage [cmd ...]] #查看命令的用法

    • hdfs管理命令
      [root@hadoop2 ~]# hdfs haadmin  # dfs管理客户端,查看hdfs状态集群Usage: haadmin [-transitionToActive [--forceactive] ] [-transitionToStandby ][-failover [--forcefence] [--forceactive]  ] #以上3条关于手动故障转移命令[-getServiceState ] #查看nn节点处active还是standby状态[-checkHealth ] #检查nn节点是否健康[-help ] #查看命令帮助

      Usage: hdfs dfsadmin :Note: hdfs超级管理员才能够运行该命令[-report [-live] [-dead] [-decommissioning]] #报告文件系统的基本信息和统计信息[-safemode ]  #安全模式维护命令。安全模式是Namenode的一个状态, 不接受对名字空间的更改(只读)、 不复制或删除块[-saveNamespace] #保存当前名称空间到存储目录,开始新edit-log,需要安全模式[-rollEdits] [-restoreFailedStorage true|false|check][-refreshNodes]  #重新读取hosts和exclude文件,更新允许连到NN的那些需要退出或新加入的Datanode。[-setQuota  ...] #限制一个目录包含最多子目录和文件 #hdfs dfsadmin -setQuota 1t  /user/dirname[-clrQuota ...][-setSpaceQuota  [-storageType ] ...] #设置一个目录最多使用空间[-clrSpaceQuota [-storageType ] ...][-refreshServiceAcl] [-refreshUserToGroupsMappings][-refreshSuperUserGroupsConfiguration][-refreshCallQueue] #刷新请求队列[-refresh   [arg1..argn][-reconfig   ]  #将datanode节点重新加入集群[-refreshNamenodes datanode_host:ipc_port][-deleteBlockPool datanode_host:ipc_port blockpoolId [force]][-setBalancerBandwidth ][-fetchImage ][-allowSnapshot ] #某目录允许快照才可以进行快照[-disallowSnapshot ][-shutdownDatanode  [upgrade]][-getDatanodeInfo ][-metasave filename]    
    • 数据块重新分布,Ctrl-C来停止平衡过程

      hadoop balancer [-threshold ] # 磁盘容量的百分比
      hdfs达到平衡状态达到磁盘使用率偏差值,值越低越平衡,但消耗时间也越长。


  • yarn资源集群管理
    [root@hadoop2 ~]# yarn rmadmin #resourcemanager 客户端Usage: yarn rmadmin-refreshQueues  #重载队列的acl、状态及调度器队列-refreshNodes #为RM刷新主机信息-refreshSuperUserGroupsConfiguration -refreshUserToGroupsMappings -refreshAdminAcls -refreshServiceAcl -addToClusterNodeLabels [label1,label2,label3] (label splitted by ",")-removeFromClusterNodeLabels [label1,label2,label3] (label splitted by ",")-replaceLabelsOnNode [node1[:port]=label1,label2 node2[:port]=label1,label2]-directlyAccessNodeLabelStore -transitionToActive [--forceactive] #rm节点故障转移-transitionToStandby -failover [--forcefence] [--forceactive]  -getServiceState #检查当前rm状态-checkHealth  -help [cmd]

  • ha hadoop启动流程:安装完第一次启动。。。
    集群搭建环境:
    步骤1:启动zookeeper服务。由于ha hadoop依赖zookeeper服务。

    步骤2:hadoop启动
    1. 启动journalnode日志服务
    2. 在hadoop1上格式化namenode,仅当第一次启动时需要格式化。出现该信息表示成功。

      hdfs namenode -format

    3. 在节点1上启动namenode节点,由于采用主备模式NN节点,hadoop2上nn节点缺少元数据信息还不会启动,需要手动同步一次元数据。

      hadoop1:hadoop-daemon.sh start namenode
      hadoop2:hdfs namenode -bootstrapStandby,在启动nn

    4. 在hadoop1上格式化zkfc,无报错及为成功(仅在第一次启动之前需要格式化,后面启动不需要格式化)。(如果不进行这一步,会出现namenode无法向zookeeper注册,会出现两个namenode都为备的状态。

      hdfs zkfc -formatZK
      hadoop-daemon.sh start zkfc #把故障转移节点服务启动,否则当前状态都为standby!

    5. 然后可以启动各节点的hdfs、yarn服务
    6. 查看各节点的服务进程是否正常运行
  • webgui访问

0