当前位置:文档之家› hadoop—集群维护手册

hadoop—集群维护手册

Had oop部分启动命令:start-all.sh停止命令:stop-all.shHadoop运行增加集群的存储量/节点如果只增加集群的存储量,建议增加Hadoop datanode节点。

步骤:1、停掉集群包括Hadoop和hbase,当然也可以不停掉,直接在hadoop namenode的配置文件Slave里添加新节点的host,别忘了在host文件里也要添加新添加的host名。

2、执行bin/start-all.sh启动集群3、以下选择一种1)如果不手动作平衡,插入的数据将会放在新添加的节点上。

以趋于平衡。

2)如果手动平衡,则start-balancer.sh和调用bin/sHadoop balancer命令相似,也可加参数-threshold 5(threshold 是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长)。

在使用start-balancer.sh时,如果在hdfs-site.xml里面没有配置dfs.balance.bandwidthPerSec,那么集群hdfs内部默认使用1M/S的速度移动数据(so slowly...),我们可以通过在hdfs-site.xml里面配置dfs.balance.bandwidthPerSec来加快balance的速度。

最开始我们配置的是20m/S ,然后结果是导致job运行变得不稳定,出现一些意外的长map单元,某些reduce时间处理变长(整个集群负载满满的情况下,外加20m/s的balance),在前天的中国hadoop年会上听淘宝调整的为10m/s,需要调整后实验,看看情况如何。

另外再修改dfs.balance.bandwidthPerSec参数后,需要在namenode上运行stop-dfs.sh start-dfs.sh重启hdfs生效。

我们可以通过stop-balancer.sh停掉平衡任务。

作完平衡后,启动hbase,正常。

果cluster设置的副本数不为3(默认),需要先运行命令hadoop fs –setrep [-R] <path> ;进行设置一个文件的副本系数。

如果默认为3则不必。

如果执行完平衡以后才改变副本数,会将新加入到新节点上的所有数据删除。

dfs.replication设置的副本系数只在文件系统写入时有效,并不影响在新添加节点时,平衡时的副本数;另外:由于还有hbase数据库,因此,在运行完平衡以后,将hbase下的.META.文件删除(防止出错),启动hbase,执行hbase org.jruby.Main add_table /表名来进行hbase表恢复;Hadoop1升级1.运行dfsadmin -upgradeProgress status 检查是否存在备份如果是第一次升级就不存在备份(在升级Hadoop前,如果已经存在备份,需要先结束finalize 它。

)2.备份node.dir下文件,同时要备份下hdfs的文件目录的元数据信息:bin/hadoop fsck / -files -blocks -locations > dfs-v-old-fsck-1.logbin/hadoop dfs -lsr / > dfs-v-old-lsr-1.logbin/hadoop dfsadmin -report > dfs-v-old-report-1.log3.停止所有节点bin/stop-all.sh4.在所有节点上重新部署hadoop 并替换conf文件夹下所有文件(就是将原有的hadoop-0.19.1更名为hadoop-0.19.1-oldverstion,然后解压hadoop-0.19.2.tar.gz 将0.19.2中的conf文件替换为0.19.1中的conf文件夹)并且要对照修改hadoop-site.xml中的路径指定是否正确5.使用bin/start-dfs.sh -upgrade 进行升级(DFS从一个版本升级到另外一个版本的时候,NameNode和DataNode使用的文件格式有可能会改变。

当你第一次使用新版本的时候,你要告诉Hadoop 去改变HDFS版本,否则,新版本不会生效)6.监控升级情况和升级问题处理开始升级,你可以通过bin/hadoop dfsadmin -upgradeProgress命令来查看版本升级的情况。

当然你可以使用bin/hadoop dfsadmin -upgradeProgress details来查看更多的详细信息。

当升级过程被阻塞的时候,你可以使用bin/hadoop dfsadmin -upgradeProgress force来强制升级继续执行(当你使用这个命令的时候,一定要慎重考虑)。

当HDFS升级完毕后,Hadoop依旧保留着旧版本的有关信息,以便你可以方便的对HDFS进行降级操作。

可以使用bin/start-dfs.sh -rollback来执行降级操作。

7.对比现有hdfs的文件目录的元数据信息和升级的差异。

8.升级完成,Hadoop一次只保存一个版本的备份,当新版本运行几天以后还是没有出现什么问题,你就可以使用运行一段时间后没有问题再执行升级终结操作bin/hadoop dfsadmin -finalizeUpgrade命令把旧版本的备份从系统中删掉了。

删除以后rollback 命令就失效了。

HdfsMapreduceHbase部分启动命令:start-hbase.sh如果一个regionserver死掉了,可以执行该命令启动,也可以启动整个hbase;停止命令:stop-hbase.sh停止hbase运行的命令.日常维护1.基本命令建表:create 'testtable','coulmn1','coulmn2'也可以建表时加coulmn的属性如:create 'testtable',{NAME => 'coulmn1', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '10', COMPRESSION => 'LZO', TTL => '30000', IN_MEMORY => 'false', BLOCKCACHE => 'false'}, {NAME => 'coulmn', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '30', COMPRESSION => 'LZO', TTL => '30000', IN_MEMORY => 'true'} (其中的属性有versions:设置历史版本数,TTL:过期时间,COMPRESSION:压缩方式,当配置lzo的情况)删除表:drop 'testtable' (删除表之前先要禁用表,命令disable 'testtable')启用和禁用表:enable 'testtable' 和disable 'testtable'其它的基本命令:describe 'testtable'(查看表结构),alert 修改表结构,list 列出所有表。

2.维护命令1,major_compact 'testtable',通常生产环境会关闭自动major_compact(配置文件中hbase.hregion.majorcompaction设为0),选择一个晚上用户少的时间窗口手工major_compact,如果hbase 更新不是太频繁,可以一个星期对所有表做一次major_compact,这个可以在做完一次major_compact后,观看所有的storefile数量,如果storefile数量增加到major_compact后的storefile的近二倍时,可以对所有表做一次major_compact,时间比较长,操作尽量避免高锋期。

2,flush 'testtable',将所有memstore刷新到hdfs,通常如果发现regionserver的内存使用过大,造成该机的regionserver很多线程block,可以执行一下flush操作,这个操作会造成hbase的storefile数量剧增,应尽量避免这个操作,还有一种情况,在hbase进行迁移的时候,如果选择拷贝文件方式,可以先停写入,然后flush所有表,拷贝文件。

3,balance_switch true或者balance_switch flase,配置master是否执行平衡各个regionserver的region 数量,当我们需要维护或者重启一个regionserver时,会关闭balancer,这样就使得region在regionserver上的分布不均,这个时候需要手工的开启balance。

3.重启一个regionserverbin/graceful_stop.sh --restart --reload --debug nodename这个操作是平滑的重启regionserver进程,对服务不会有影响,他会先将需要重启的regionserver上面的所有region迁移到其它的服务器,然后重启,最后又会将之前的region迁移回来,但我们修改一个配置时,可以用这种方式重启每一台机子,这个命令会关闭balancer,所以最后我们要在hbase shell里面执行一下balance_switch true,对于hbase regionserver重启,不要直接kill进程,这样会造成在zookeeper.session.timeout这个时间长的中断,也不要通过bin/hbase-daemon.sh stop regionserver去重启,如果运气不太好,-ROOT-或者.META.表在上面的话,所有的请求会全部失败。

4.关闭下线一台regionserverbin/graceful_stop.sh --stop nodename和上面一样,系统会在关闭之前迁移所有region,然后stop进程,同样最后我们要手工balance_switch true,开启master的region均衡。

相关主题