[关闭]
@zhangyy 2019-12-12T14:59:46.000000Z 字数 4579 阅读 166

hadoop 管理命令操作

hadoop的部分



一: hadoop的相关管理命令

1.1 fsimage 的查看命令

  1. cd /soft/hadoop/data/dfs/name/current
  2. hdfs oiv -i fsimage_0000000000000000170 -o f.xml -p XML
  3. 查看镜像文件
  4. cat f.xml

image_1c9go36ke124134iu291rq01d859.png-646.1kB

1.2 edits 编辑日志的查看

  1. hdfs oev -i edits_0000000000000000126-0000000000000000127 -o e.txt -p XML
  2. cat e.txt
  3. edits_inprogress_0000000000000000171 inprogress 表示正在使用的edits

image_1c9go6spf1qvcrnd1vpb1irbdkq16.png-242.1kB

1.3 手动对编辑日志滚动

  1. hdfs dfsadmin -rollEdits
  2. edits_inprogress_0000000000000000179
  3. 当前滚动的是的179

image_1c9gonru014f818jp3h212qfuel2m.png-114.8kB

1.4 hdfs 的 安全模式

  1. 1.1:安全模式下,集群属于只读状态。但是严格来说,只是保证HDFS元数据信息的访问,而不保证文件的访问,因为文件的组成Block信息此时NameNode还不一定已经知道了。所以只有NameNode已了解了Block信息的文件才能独到。而安全模式下任何对HDFS有更新的操作都会失败。
  2. 1.2 对于全新创建的HDFS集群,NameNode启动后不会进入安全模式,因为没有Block信息。
  3. hadoop安全模式
  4. 在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结 束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。 SafeModeException 异常
  5. 运行hadoop程序时,有时候会报以下错误:
  6. org.apache.hadoop.dfs.SafeModeException: Cannot delete/user/hadoop/input. Name node is in safe mode.
  7. 那我们来分析下这个错误,从字面上来理解:“Name node is in safe mode.”
  8. 现在就清楚了,那现在要解决这个问题,我想让Hadoop不处在safe mode 模式下,能不能不用等,直接解决呢?答案是可以的,
  9. 只要在Hadoop的目录下输入:
  10. $bin/hadoop dfsadmin -safemode leave
  11. 也就是关闭Hadoop的安全模式,这样问题就解决了。
  12. safemode模式
  13. NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例(1- dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。 dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS启动的时候,如果DataNode上报的block个数达到了 元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1HDFS永远是处于SafeMode
  14. 下面这行摘录自NameNode启动时的日志(block上报比例1达到了阀值0.9990
  15. The ratio of reported blocks 1.0000 has reached the threshold0.9990. Safe mode will be turned off automatically in 18seconds.
  16. 1.修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999
  17. 2. hadoop dfsadmin -safemode leave命令强制离开
  18. hadoop dfsadmin-safemode 命令
  19. 格式:Usage: java DFSAdmin [-safemode enter | leave | get |wait]
  20. 用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
  21. enter - 进入安全模式
  22. leave - 强制NameNode离开安全模式
  23. get - 返回安全模式是否开启的信息
  24. wait - 等待,一直到安全模式结束。
  25. ----
  26. hdfs dfsadmin -safemode enter // 进入安全模式
  27. hdfs 处于 安全模式下只可以查看不可以删除hdfs 上面的数据

1.5 hdfs 的命名空间保存

  1. hdfs 保存命名空间节点:
  2. hdfs dfsadmin -safemode enter
  3. hdfs dfsadmin saveNamespace
  4. 默认存放在最新的fsimage 文件里面

image_1c9gq0nbb1pqq107nuhlqle1kmg53.png-159.7kB

1.6 hdfs的快照

  1. 1. 描述
  2. 迅速对hdfs 上的 文件夹进行备份,不产生新文件,使用差值存储, 默认是禁用快照
  3. 2. 命令:
  4. hdfs dfsadmin -allowSnapShot dir1 // 在dir1 上面启用快照
  5. hdfs dfsamdin -disabllowSnapShot dir2 // 在dir2 禁用快照
  6. ----
  7. hdfs dfsadmin -allowSnapshot ./data # 启动可以快照的目录
  8. hdfs dfsadmin -createSnapshot ./data snap1 # 创建快照
  9. hdfs dfs -lsr /user/root/data/.snapshot # 查看快照
  10. hdfs dfsadmin -removeSnapshot ./data snap2 # 移动快照
  11. hdfs dfsadmin -deleteSnapshot ./data snap2 # 删除快照

image_1c9granl2gc81b64b5d1buukde7a.png-180.9kB
image_1c9grbegmr7k1s61vcd1i8kqm67n.png-179.1kB
image_1c9grcm7s13aasgs7al1tva1k8a84.png-240.8kB


1.7 hdfs 节点的服役与退役

  1. [添加新节点]
  2. 白名单: dfs.hosts
  3. 黑名单: dfs.hosts.exclude
  4. 1. dfs.hosts包含新的节点IP 地址,该文件在NN节点的本地目录下面
  5. 【白名单】
  6. NN节点的下面的 /soft/hadoop/etc/dfs.include.txt 里面
  7. ---
  8. xuegod01
  9. xuegod02
  10. xuegod03
  11. .....
  12. xuegod0n
  13. ---
  14. 2. hdfs-site.xml 增加
  15. <property>
  16. <name>dfs.hosts</name>
  17. <value>/soft/hadoop/etc/hadoop/dfs.include.txt</value>
  18. </property>
  19. 3.NN 节点上刷新节点
  20. hdfs dfsadmin -refreshNodes
  21. 4. slaves 文件中增加要添加的节点的ip地址
  22. 然后同步所有节点
  23. 5. 单独启动新的节点上的datanode
  24. hadoop-daemon.sh start datanode

1.8 hdfs 节点的退役

  1. -------------
  2. 白名单 黑名单 结果
  3. NO NO 不能连接
  4. NO YES 不能连接
  5. YES NO 可以连接
  6. YES YES 将要退役节点
  7. ----------------
  8. 1. 添加退役节点IP地址到黑名单当中
  9. /soft/hadoop/etc/dfs.hosts.exclude 文件中
  10. <property>
  11. <name>dfs.hosts.exclude</name>
  12. <value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
  13. </property>
  14. 2. 刷新NN节点:
  15. hdfs dfsadmin -refreshNodes
  16. 3.查看webUi 退役节点是不是 decommisstion in process
  17. 4. 当所有的退役节点的状态为 Decommisstioned 表示数据已经拷贝完成
  18. 5. 从白名单删除节点,并刷新节点
  19. 白名单:/soft/hadoop/etc/dfs.include.txt
  20. 在删除节点的上面执行: hdfs dfsadmin -refreshNodes
  21. 6. slaves 删除 退役节点
  1. 列如: 退役节点:xuegod04
  2. NN 节点上面配置文件黑名
  3. vim /soft/hadoop/etc/dfs.hosts.exclude.txt
  4. ---
  5. xuegod04
  6. ---
  7. 配置hdfs-site.xml 增加:
  8. /soft/hadoop/etc/dfs.hosts.exclude 文件中
  9. <property>
  10. <name>dfs.hosts.exclude</name>
  11. <value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
  12. </property>
  1. 刷新NN节点:
  2. hdfs dfsadmin -refreshNodes

微信截图_20180327151026.png-136.1kB

微信截图_20180327151230.png-91.5kB

  1. 然后停掉下降节点的上的 服务器(datanode/nodemanager) 停掉
  2. hadoop-daemon.sh stop datanode
  3. yarn-daemon.sh stop nodemanager
  4. 之后重启 整个hadoop 集群
  5. stop-dfs.sh
  6. 然后起来hdfs上面的服务
  7. start-dfs.sh

1.9 yarn 节点的增加与退役

  1. 参数:
  2. 白名单: yarn.resourcemanger.nodes.include-path
  3. 黑名单:yarn.resourcemanager.nodes.exclude-path
  4. [增加节点]
  5. 1. yarn.include文件中包含新节点的名称,该文件在NN 本地目录
  6. [白名单文件]
  7. NN 节点上: /soft/hadoop/etc/yarn.include.txt
  8. 2. yarn-site.xml 文件中添加属性。
  9. <property>
  10. <name>yarn.resourcemanger.nodes.include-path</name>
  11. <value>/soft/hadoop/etc/yarn.hosts.include.txt</value>
  12. </property>
  13. 3. NN节点上刷新节点:
  14. yarn rmadmin -refreshNodes
  15. 4. slaves 文件中添加新节点IP(主机名)
  16. 5. 在单独启动的节点上启动nodemanager
  17. yarn-daemon.sh start modemanager
  1. [退役]
  2. 1. 添加退役节点的IP 地址到黑名单,不要更新白名单
  3. /soft/hadoop/etc/yarn.hosts.exclude.txt
  4. 2. 配置yarn-site.xml
  5. <property>
  6. <name>yarn.resourcemanger.nodes.exclude-path</name>
  7. <value>/soft/hadoop/etc/yarn.hosts.exclude.txt</value>
  8. </property>
  9. 3. 刷新NN节点
  10. yarn rmadmin -refreshNodes
  11. 4. 查看webUI,节点状态在decommisstion in progress .
  12. 5. 当所有的要退役节点都报告为Decommissioned,数据转移工作完成。
  13. 6. 从白名单删除节点,并刷新新节点。
  14. yarn rmadmin -refreshNodes
  15. 7.slaves 文件中删除退役节点
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注