关于Hbase的集群管理

http://www.linuxidc.com/Linux/2012-07/65909.htm

1、如果只增加集群的存储量,建议增加Hadoop datanode节点。

方法:
  • 停掉集群包括hadoop和hbase,当然也可以不停掉,直接在hadoop namenode的配置文件Slave里添加新节点的host,别忘了在host文件里也要添加新添加的host名。
  • 执行bin/start-all.sh启动集群
  • 如果不手动作平衡,插入的数据将会放在新添加的节点上。以趋于平衡。
  • 如果手动平衡,则 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则不必。如果执行完平衡以后才改变副本数,会将新加入到新节点上的所有数据删除。 
    5.dfs.replication设置的副本系数只在文件系统写入时有效,并不影响在新添加节点时,平衡时的副本数 
    由于还有hbase数据库,因此,在运行完平衡以后,将hbase下的.META.文件删除(防止出错),启动hbase,执行hbase org.jruby.Main add_table /表名 来进行hbase表恢复
验证步骤:1namenode+3datanode+1master+2regionserver+3zookeeper
 
2、删除一个regionServer,
在需要删除的RegionServer上执行以下命令:$ ./bin/hbase-daemon.sh stop regionserver  RegionServer将会关掉所有的region,然后此节点将会在Zookeeper消失。Master注意到了此RegionServer 掉了,它将会重新分配掉的这些Region。在停掉一个节点的时候,注意要关闭Load Balancer,因为Load Balancer可能要和Master的恢复机制争夺停掉的RegionServer。
hbase(main):001:0> balance_switch false
true
0 row(s) in 0.3590 seconds
 
hbase(main):002:0> balance_switch true
false
0 row(s) in 0.3590 seconds
 
./bin/graceful_stop.sh
Usage: graceful_stop.sh [--config &conf-dir>] [--restart] [--reload] \
[--thrift] [--rest] &hostname>
thrift If we should stop/start thrift before/after the hbase stop/start
rest If we should stop/start rest before/after the hbase stop/start
restart If we should restart after graceful stop
reload Move offloaded regions back on to the stopped server
debug Move offloaded regions back on to the stopped server
hostname Hostname of server we are to stop
 
3、添加一个备份的master节点
 
 
有时候hadoop或hbase集群运行时间久了后,某些节点就会失效,这个时候如果不想重启整个集群(这种情况在很多情况下已经不被允许),这个时候可以单独重启失效节点。

HADOOP:

hadoop中重启单节点的方法和增加新节点其实是一样的。
1、我们先看下如何了解hadoop机器的情况,可以用命令:
hadoop dfsadmin -report 查看集群容量情况,很多情况下失效节点也可以从这里了解到(比如失效节点容量显示为0)。
也可以用web查看:http://ip:54030/jobtracker.jsp
2、重启或添加节点:
$bin/hadoop-daemon.sh start datanode 
  
$bin/hadoop-daemon.sh start tasktracker
当然,添加的话需要copy配置文件到新节点。重启的话先  $bin/hadoop-daemon.sh stop datanode/ tasktracker

3、重新balancer(可选)

$bin/hadoop balancer
其实集群自己会balancer,当然也可以像上面那样手动balancer,不然在繁忙时段最好避免。
 
HBASE:
很多时候,节点失效是因为pid文件被删除引起(默认pid文件中/tmp下),所以最好把很多默认是/tmp的目录修改成自己的目录,比如hbase的pid配置可以在hbase-env.sh中,修改export HBASE_PID_DIR=/var/hadoop/pids就可以。hbase节点失效常对应60020端口异常。
进入hbase shell
1、查看节点情况:
status
当然,也可以通过web页面查看(如果服务开放的话):
http://serviceIp:60010/master.jsp

http://serviceIp:60030/regionserver.jsp

http://serviceIp:60010/zk.jsp

2、重启
$bin/hbase-daemon.sh stop regionserver
$bin/hbase-daemon.sh start regionserver
也可以添加新的master(默认只有一个master),$bin/hbase-daemon.sh start master

hbase 新增节点的更多相关文章

  1. 为hbase新增节点

    为hbase增加新的节点,首先要为hadoop增加新新街点.因为我的做法是将datanode和regionserver放到一台物理机上.因此大体流程是: 1.克隆已经存在的regionserver虚拟 ...

  2. 实验-hadoop新增节点

    关于hadoop新增节点网上的说法都有些差别,自己来实践一把 1.建立一个namenode一个datanode的集群 master:192.168.126.130 slave1:192.168.126 ...

  3. CDH5.16.1集群新增节点

    如果是全新安装集群的话,可以参考<Ubuntu 16.04上搭建CDH5.16.1集群> 下面是集群新增节点步骤: 1.已经存在一个集群,有两个节点 192.168.100.19 hado ...

  4. 解决jQuery ajax动态新增节点无法触发点击事件的问题

    在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写onclick="" ...

  5. kubernetes 集群新增node 节点并将应用分配到新增节点

    第一章 1.重新安装一台kubernetes node节点,新增节点:192.168.1.192 网址:https://www.cnblogs.com/zoulixiang/p/9504324.htm ...

  6. Elastic search集群新增节点(同一个集群,同一台物理机,基于ES 7.4)

    一开始,在电脑上同一个集群新增节点(node)怎么试也不成功,官网guide又语焉不详?集群健康值yellow(表示主分片全部可用,部分复制分片不可用) 最后,在stackoverflow上找到了答案 ...

  7. redis 集群新增节点,slots槽分配,删除节点, [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GET...

    redis reshard 重新分槽(slots) https://github.com/antirez/redis/issues/5029 redis 官方已确认该bug redis 集群重新(re ...

  8. k8s系列--node(k8s节点介绍,新增节点,移除节点)

    一.简介 Node是Pod真正运行的主机,可以是物理机也可以是虚拟机. Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源. 为了管理Pod,每个Node节 ...

  9. Spark集群新增节点方法

    Spark集群处理能力不足需要扩容,如何在现有spark集群中新增新节点?本文以一个实例介绍如何给Spark集群新增一个节点. 1. 集群环境 现有Spark集群包括3台机器,用户名都是cdahdp, ...

随机推荐

  1. 使用Modernizr探测HTML5/CSS3新特性

    [转] HTML5, CSS3以及相关技术(例如canvas和web sockets)带来了非常有用的特性,可以让我们的web程序提升一个新的level.这些新技术允许我们只用HTML,CSS和Jav ...

  2. Redis中7种集合类型应用场景&redis常用命令

    Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部 ...

  3. Java拾穗

    1.Class.forName("com.wzh.test.loadClass"); Class.forName("com.mysql.jdbc.Driver" ...

  4. Task.Run Vs Task.Factory.StartNew z

    在.Net 4中,Task.Factory.StartNew是启动一个新Task的首选方法.它有很多重载方法,使它在具体使用当中可以非常灵活,通过设置可选参数,可以传递任意状态,取消任务继续执行,甚至 ...

  5. DualPivotQuicksort 排序算法解析

    DualPivotQuicksort是JDK1.7开始的采用的快速排序算法. 一般的快速排序采用一个枢轴来把一个数组划分成两半,然后递归之. 大量经验数据表面,采用两个枢轴来划分成3份的算法更高效,这 ...

  6. Java SE 第二十四讲----static与final使用陷阱关键字

    1.对于final类型成员变量,一般来说有两种赋值方式: a)在声明final类型的成员变量时就附上初值 package com.cl.staticandfinal; public class Fin ...

  7. 九度OJ1081

    这道题又一次更新了我的世界观与人生观Orz……最开始我是设计了一个O(n)的递推算法,本以为可以轻松AC没想到居然TLE了……然后搜了一下题解,才发现这道题要用矩阵的思想去做. 通过对题目的分析,我们 ...

  8. Grid++Report的几点总结

    一.同事解决方案: 1.在View文件夹下建立报表文件A,用来作为报表呈现的载体.这个页面负责加载报表模板与加载数据源.其中报表模板由于后缀名为grf,在MVC中不做任何修改的情况下,系统会做路由处理 ...

  9. C# 数据回滚

    public int GetExecteQuery(string strAddSql, string strUpdateSql, string strDelSql) { SqlConnection c ...

  10. Spring Data Jpa 规范接口表

      Keyword Sample JPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname ...