《hadoop—集群维护手册(17页).doc》由会员分享,可在线阅读,更多相关《hadoop—集群维护手册(17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-Hadoop部分启动命令: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/
2、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运行变得不稳定,出现一些意外
3、的长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 ;进行设置一个文件的副本系数。如果默认为3则不必
4、。如果执行完平衡以后才改变副本数,会将新加入到新节点上的所有数据删除。 dfs.replication设置的副本系数只在文件系统写入时有效,并不影响在新添加节点时,平衡时的副本数;另外:由于还有hbase数据库,因此,在运行完平衡以后,将hbase下的.META.文件删除(防止出错),启动hbase,执行hbase org.jruby.Main add_table /表名 来进行hbase表恢复;Hadoop1升级1.运行dfsadmin -upgradeProgress status 检查是否存在备份 如果是第一次升级 就不存在备份(在升级Hadoop前,如果已经存在备份,需要先结束 fin
5、alize 它。)2.备份dfs.namenode.dir下文件,同时要备份下hdfs的文件目录的元数据信息:bin/hadoop fsck / -files -blocks -locations dfs-v-old-fsck-1.log bin/hadoop dfs -lsr / dfs-v-old-lsr-1.log bin/hadoop dfsadmin -report dfs-v-old-report-1.log3.停止所有节点 bin/stop-all.sh4.在所有节点上重新部署hadoop 并替换conf文件夹下所有文件(就是将原有的hadoop-0.19.1更名为hadoop-
6、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 -upgradePro
7、gress命令来查看版本升级的情况。当然你可以使用bin/hadoop dfsadmin -upgradeProgress details来查看更多的详细信息。当升级过程被阻塞的时候,你可以使用bin/hadoop dfsadmin -upgradeProgress force来强制升级继续执行(当你使用这个命令的时候,一定要慎重考虑)。当HDFS升级完毕后,Hadoop依旧保留着旧版本的有关信息,以便你可以方便的对HDFS进行降级操作。可以使用bin/start-dfs.sh -rollback来执行降级操作。7.对比现有hdfs的文件目录的元数据信息和升级的差异。8.升级完成,Hadoop
8、一次只保存一个版本的备份,当新版本运行几天以后还是没有出现什么问题,你就可以使用运行一段时间后 没有问题再执行升级终结操作bin/hadoop dfsadmin -finalizeUpgrade命令把旧版本的备份从系统中删掉了。删除以后rollback 命令就失效了。HdfsMapreduceHbase部分启动命令:start-hbase.sh如果一个regionserver死掉了,可以执行该命令启动,也可以启动整个hbase;停止命令:stop-hbase.sh停止hbase运行的命令.日常维护1. 基本命令 建表:create testtable,coulmn1,coulmn2 也可以建表
9、时加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 (其中
10、的属性有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.majorcompac
11、tion设 为0),选择一个晚上用户少的时间窗口手工major_compact,如果hbase更新不是太频繁,可以一个星期对所有表做一次 major_compact,这个可以在做完一次major_compact后,观看所有的storefile数量,如果storefile数量增加到 major_compact后的storefile的近二倍时,可以对所有表做一次major_compact,时间比较长,操作尽量避免高锋期。 2,flush testtable,将所有memstore刷新到hdfs,通常如果发现regionserver的内存使用过大,造成该机的 regionserver很多线程bloc
12、k,可以执行一下flush操作,这个操作会造成hbase的storefile数量剧增,应尽量避免这个操 作,还有一种情况,在hbase进行迁移的时候,如果选择拷贝文件方式,可以先停写入,然后flush所有表,拷贝文件。 3,balance_switch true或者balance_switch flase,配置master是否执行平衡各个regionserver的region数量,当我们需要维护或者重启一个regionserver时,会 关闭balancer,这样就使得region在regionserver上的分布不均,这个时候需要手工的开启balance。3. 重启一个regionserve
13、r bin/graceful_stop.sh -restart -reload -debug nodename 这个操作是平滑的重启regionserver进程,对服务不会有影响,他会先将需要重启的regionserver上面的所有 region迁移到其它的服务器,然后重启,最后又会将之前的region迁移回来,但我们修改一个配置时,可以用这种方式重启每一台机子,这个命令会关 闭balancer,所以最后我们要在hbase shell里面执行一下balance_switch true,对于hbase regionserver重启,不要直接kill进程,这样会造成在zookeeper.sessi
14、on.timeout这个时间长的中断,也不要通过 bin/hbase-daemon.sh stop regionserver去重启,如果运气不太好,-ROOT-或者.META.表在上面的话,所有的请求会全部失败。4. 关闭下线一台regionserver bin/graceful_stop.sh -stop nodename和上面一样,系统会在关闭之前迁移所有region,然后stop进程,同样最后我们要手工balance_switch true,开启master的region均衡。5. 检查region是否正常以及修复 bin/hbase hbck (检查) bin/hbase hbck -
15、fix (修复) 会返回所有的region是否正常挂载,如没有正常挂载可以使用下一条命令修复,如果还是不能修复,那需要看日志为什么失败,手工处理。6. hbase的迁移u copytable方式 bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable -peer.adr=zookeeper1,zookeeper2,zookeeper3:/hbase testtable 目前0.92之前的版本的不支持多版本的复制,0.94已经支持多个版本的复制。当然这个操作需要添加hbase目录里的conf/mapred-site.xml,可以复制hadoop
16、的过来。u Export/Import bin/hbase org.apache.hadoop.hbase.mapreduce.Export testtable /user/testtable versions starttime stoptime bin/hbase org.apache.hadoop.hbase.mapreduce.Import testtable /user/testtable 跨版本的迁移,我觉得是一个不错的选择,而且copytable不支持多版本,而export支持多版本,比copytable更实用一些。u 直接拷贝hdfs对应的文件 首先拷贝hdfs文件,如bin/
17、hadoop distcp hdfs:/srcnamenode:9000/hbase/testtable/ hdfs:/distnamenode:9000/hbase/testtable/ 然后在目的hbase上执行bin/hbase org.jruby.Main bin/add_table.rb /hbase/testtable 生成meta信息后,重启hbase这个操作是简单的方式,操作之前可以关闭hbase的写入,执行flush所有表(上面有介绍),再distcp拷贝,如果hadoop版本不一致,可以用hftp接口的方式,我推荐使用这种方式,成本低。HBase升级在hbase-0.96-
18、0版本,提供了升级命令,当然需要预先将低版本的升级到0.96或者更高版本时,需要使用升级命令;Hbase命令提供了如下的选项; echo Usage: hbase echo Options: echo -config DIR Configuration direction to use. Default: ./conf echo -hosts HOSTS Override the list in regionservers file echo echo Commands: echo Some commands take arguments. Pass no args or -h for usa
19、ge. echo shell Run the HBase shell echo hbck Run the hbase fsck tool echo hlog Write-ahead-log analyzer echo hfile Store file analyzer echo zkcli Run the ZooKeeper shell echo upgrade Upgrade hbase echo master Run an HBase HMaster node echo regionserver Run an HBase HRegionServer node echo zookeeper
20、Run a Zookeeper server echo rest Run an HBase REST server echo thrift Run the HBase Thrift server echo thrift2 Run the HBase Thrift2 server echo clean Run the HBase clean up script echo classpath Dump hbase CLASSPATH echo version Print the version echo CLASSNAME Run the class named CLASSNAME其中“hbase
21、 upgrade”就是升级命令;升级步骤:1、 根据低版本的配置(conf目录下),修改高版本的配置(conf), hbase的pid文件目录和数据目录都不用修改,zk的配置都可以不更改,日志目录可以改变2、 拷贝必要的包到高版本hbase的lib目录下,例如:当前的hadoop核心包3、 修改环境变量的HBASE_HOME目录,如果环境变量中配置了HBASE LIB目录下的包,需要检查高版本是否存在,进行相应更改4、 同步到集群的其他机器中5、 执行“hbase upgrade”更新命令,目的是更新当前hbase版本等内容6、 在主节点上执行”start-hbase.sh”命令7、 检查hbase是否启动成功Hive 部分Root用户登录后启动命令:service hiveserver start重启命令:service hiveserver restart停止命令:service hiveserver stop查看状态命令:service hiveserver status以上命令是给远程调用时的服务;直接在终端操作hive,以上服务可以不启动。第 17 页-
限制150内