使用 hadoop dfsadimn管理集群
命令 | 说明 |
---|---|
-metasave | 正在复制和等待复制的块的信息; |
-report | 报告集群的信息状态 |
-safemode | enter 进入安全模式,leave离开安全模式 |
-saveNamespace | 将当前内存中的文件系统映像保持为一个新的fsimage文件,重置edits文件。 该操作仅在安全模式下进行* |
-restoreFailedStorage true | 设置/取消/检查NameNode中恢复失败存储的可用副本的标记。 |
-refreshNodes | 更新允许连接到namenode的datanode列表。该操作会使namenode重新读取dfs.hosts、dfs.host.exclude的配置。 |
-finalizeUpgrade | 移除datanode和namenode存储目录下的旧版本数据。一般在升级完成后进行。 |
-upgradeProgress | 获取HDFS的升级状态。 |
-metasave /path | 将HDFS部分信息存储到Hadoop日志目录下的指定文件中。信息包括:正在被复制或删除的块信息 连接上的datanode列表 |
fsck命令
命令选项 | 说明 |
---|---|
-list-corruptfileblocks | 列出损坏的块 |
<path> | 要检查的目录或文件的HDFS路径 |
-move | 将损坏的文件移动到 /lost+found |
-delete | 删除损坏的文件 |
-openforwrite | 显示正在写入的文件 |
-files | 显示被检查的文件 |
-blocks | 显示文件中的各个块信息 |
-locations | 显示每一块的位置 |
-racks | 显示每个块的机架位置和DataNode地址 |
查看损坏的块:
hdfs fsck / | egrep -v '^\.+$' | grep -v eplica
查看缺失文件的情况:
hdfs fsck /path/to/corrupt/file -locations -blocks -files
修复损坏的块
hdfs debug recoverLease -path 文件位置 -retries 重试次数 # 修复指定路径的hdfs文件,尝试多次
负载均衡
HDFS提供了负载均衡器程序,可将负载较重的DataNode上的块数据转移到空闲的DataNode上。集群均衡的标准为LmeigeDataNode的使用率和集群的使用率之间的差别小于阈值(默认为10%)。当集群的负载达到均衡标准后,负载均衡器就自动退出了。启动负载均衡器的方式如下所示
$ sbin/start-balancer.sh【threshold n】[-policy [datanode|blockpool]
添加节点
将新节点的主机名添加到include文件中(include文件为配置项dfs.hosts指向的文件);
- 部署、配置新节点上的HDFS组件
- 运行dfsadmin -refreshNodes命令,使NameNode更新最新的DataNode列表:
移除节点
将需要解除的节点主机名加入exclude文件中;
- 运行dfsadmin -refreshNodes命令,使NameNode更新最新的DataNode列表;
- 通过dfsadmin –report命令或Web UI查看待解除节点的状态是否处于Decommission状态,该状态表明该节点正在转移数据到其他节点;
- 当待解除节点的状态变为Decommissioned时,说明数据已转移,可以任意关闭该节点;
- 从include文件中移除待解除节点的主机名,并使用dfsadmin -refreshNodes命令再次更新NameNode上的DataNode列表;
- 从slaves文件中移除这些节点,解除集群对这些节点的控制。
hadoop的快照
允许快照
hdfs dfsadmin -allowSnapshot 《path》 《dir》:
禁止快照
hdfs dfsadmin -disallowSnapshot
注意:hdfs的路径和文件用空格分开,否则报错
删除快照
hadoop fs -deleteSnapshot / s20190506-164557.598
获得snapshottable目录列表
hdfs lsSnapshottableDir
快照恢复
hdfs dfs -cp -ptopax /snapshot /tmp
hadoop的压缩
关于压缩可以参考:https://blog.csdn.net/yu0_zhang0/article/details/79524842
https://blog.51cto.com/flyfish225/2097274
查看自己的hadoop支持的压缩格式
hadoop checknative -a
压缩格式 | UNIX工具 | 算 法 | 文件扩展名 | 可分割 |
---|---|---|---|---|
DEFLATE | 无 | DEFLATE | .deflate | No |
gzip | gzip | DEFLATE | .gz | No |
LZ4 | 无 | LZ4 | .LZ4 | NO |
bzip | bzip | bzip | .bz2 | YES |
LZO | lzop | LZO | .lzo | YES if indexed |
注意
分割是指:MapReduce是否会启动多个maptask,普通文件会一个块对应maptask,而压缩文件根据是否分割,不分割只启动一个mpatask
参考博客:https://www.cnblogs.com/warmingsun/p/5056393.html