【转】Hadoop 操作备忘

来源:互联网 发布:肯德基好吃的推荐 知乎 编辑:程序博客网 时间:2024/05/16 06:23

原文链接:http://blog.falood.me/2012/01/hadoop.html

 

DateNode 测试(添加、删除、灾难)
测试前:
master.hadoop:  248
secondaryname.hadoop:  106
slave104.hadoop:   104
slave110.hadoop:   110
slave250.hadoop:   250 (准备加入,不在集群内)

格式化DateNode:
hadoop namenode -format

平衡DateNode:
hadoop balancer

添加DataNode(添加slave250.hadoop):
在 slave250.hadoop 部署与slave104相同的hadoop环境
在 master.hadoop $HADOOP_HOME/conf/slaves 加入 slave250.hadoop
在 master.hadoop $HADOOP_HOME/bin 执行 start-all.sh
添加完成
完成标志:DFS 管理页面 Live Nodes 里新加了 slave250.hadoop

删除DataNode(删除slave110.hadoop):
在 master.hadoop $HADOOP_HOME/conf/dfs.hosts.exclude 文件添加 slave110.hadoop
在 master 执行 hadoop dfsadmin -refreshNodes
查看 DFS 管理页面  Decommissioning Nodes 变为 1,说明正在执行删除 slave110.hadoop 操作
等待 Decommissioning Nodes 变成0, Dead Nodes 变为 1,说明 slave110.hadoop 删除操作完成
在 slave110.hadoop 机器上 kill 掉 hadoop 的相关进程
删除完成
完成标志:DFS管理页面 Live Nodes  看不到 slave110.hadoop,Configured Capacity 减少相应的磁盘空间

灾难测试(强行删除 slave104.hadoop 的 hdfs 数据目录):
hadoop 自动识别了灾难,Dead Nodes 数量变为 1,此时数据正常,运行 mapreduce 程序正常
灾难恢复:在 slave104.hadoop 机器上 kill 掉 hadoop 的相关进程,清空/新建 hdfs 数据目录,在 master.hadoop $HADOOP_HOME/bin 执行 start-all.sh
完成标志:DFS 管理页面 Live Nodes 里新加了 slave104.hadoop

master 故障测试(冷备方案NameNode故障手动切换):
1. 不切换 NameNode 主机。
   1).复制 SecondaryNameNode 的 fs.checkpoint.dir 目录的数据到 NameNode 的对应目录。
   2).清空 NameNode 的 dfs.name.dir 目录的数据,保留空目录。
   3).在 NameNode 主机执行 hadoop namenode -importCheckpoint 。
   4).执行 hadoop fsck /  检查文件系统,"The filesystem under path '/' is HEALTHY" 为正常结果。
   5).结束 步骤 3). 中的命令,Ctrl + C
   6).清空 NameNode 的 fs.checkpoint.dir 目录的数据
   7). start-dfs.sh 正常启动 datenode
2. 切换 NameNode 主机
   0). 修改 DNS 服务器,把 master.hadoop 指向新的 NameNode
   1). 2). 3). 同上
   3.1). 同上 5). 中的操作,结束 checkpoint
   3.2). stop-all.sh 停掉 hadoop 集群
   跳过 4). 5).
   6). 同上
   7). start-all.sh  启动 hadoop 集群
   8). 同上 4). 中的操作检查数据的完整性

0 0
原创粉丝点击