HBase 复习 ---- chapter07
HBase 复习 ---- chapter07
-
部署 HBase(运维)
1:部署 HBase 实际是部署了三个技术(hadoop + zookeeper + hbase)
hadoop = hdfs + mapreduce + common
hdfs = namenode + datanode + secondaryNamenode
yarn = ResourceManager(JobTracker)+ NodeManager(TaskTracker)
zookeeper = zookeeper集合 + zookeeper客户端
zookeeper集合 = zookeeper Leader + zookeeper Flowers = QuorumPeerMain
HBase = HMaster + HRegionServer
namenode + datanode + secondaryNamenode
ResourceManager + NodeManager
QuorumPeerMain
HMaster+HRegionServer -
这个八个技术如何进行部署呢?
niit01-master: namenode+datanode+nodemanager
niit02-master: SecondaryNamenode+datanode+nodemanager
niit03-master: ResourceManager+datanode+nodemanager -
上面那些组件要求内存+CPU?
namenode secondaryNamenode QuorumPeerMain HMaster HRegionServer nodemanager -
上面那些组件要求磁盘?
datanode HRegionServer nodemanager -
SLA:服务级别协议是指提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或契约。
-
集群类型:从小到大(我们书上讲的集群类型是比较原始的,真实的和这个会有差距)
-
原型集群:(cpu拥有 4–6 核,24–32 GB RAM 和 4 T SATA 磁盘)
原型集群是没有严格的 SLA 的集群,可以将其关闭。
它通常少于 10 个节点。
可以在原型集群中的单个节点上并置多个服务。 -
小型生产集群(10-20 台服务器)(cpu拥有 6–8 核,32–64 GB RAM 和 8 T SATA 磁盘 双电源 RAID:提高磁盘利用率+容错能力 ) 少于 10 个从节点很难进行操作。
如果要部署生产集群,请考虑使用相对更好的主节点硬件。 双电源和 RAID 可能已成为日常工作。
流量/工作量不多的小型生产集群可以并置服务。
对于小型集群,单个 HBase Master 可以。
单个 ZooKeeper 可以用于小型集群,并且可以与 HBase Master 并置。如果运行 NameNode和 JobTracker 的主机 足够强大,则也可以在其上放置 ZooKeeper 和 HBase Master。 这样可以省去您购买额外机器的麻烦。
单个 HBase Master 和 ZooKeeper 限制了可维护性 -
中型生产集群(最多约 50 台服务器 20-50)(cpu拥有 8–10 核,32–64 GB RAM 和 8 T SATA 磁盘 双电源 RAID:提高磁盘利用率+容错能力 )
最多可能有 50 个节点属于此类别。
出于性能原因,我们建议您不要并置 HBase 和 MapReduce。如果并置,请在单独的硬件上部署NameNode 和 JobTracker。
应当部署三个 ZooKeeper 和三个 HBase 主节点,尤其是在生产系统中。
不要为 NameNode 和 Secondary NameNode 的硬件而便宜。 -
大型生产集群(>=50 台服务器)(cpu拥有 10–12 核,64–128 GB RAM 和 16 T SATA 磁盘 双电源 RAID:提高磁盘利用率+容错能力 )
中型集群的所有情况都适用,只是您可能需要五个可以与 HBase Master 搭配使用的ZooKeeper 实例。
确保 NameNode 和 Secondary NameNode +HregionServer有足够的内存,具体取决于群集的存储容量。 -
hbase 的配置
环境变量:JAVA_HOME HBASE_CLASSPATH
内存: HBASE_HEAPSIZE HBASE_OPTS
其他设置:HBASE_MANAGES_ZK=false -
设置 SSH 免密登录
A 主机免密登录 B 主机
A 主机操作:
ssh-keygen -t rsa
:生成公钥和密钥
ssh-copy-id B主机
:A 主机将公钥发送给 B 主机
A 主机连接 B 主机,第一次需要密码验证,验证通过,后期 A 主机连接 B 主机就不要密码验证了。 -
修改主机名
vi /etc/hosts
- 创建用户(root 用户)
useradd hadoop
passwd Hadoop
- 复制 Hadoop + HBase
- 修改
HBASE_HOME/conf/regionserves
- 启动
- 删除节点:
方式一:
kill -9 regionserver process number(不推荐)
方式二:
hbase-daemon.sh stop regionserver(也不推荐,好一点)
方式三:
graceful_stop.sh (推荐)
步骤介绍:
1、首先停止负载均衡
2、将节点名称上的数据移动到其他节点
3、关闭服务
- 在不停止服务器在线业务的情况下,调整配置参数.
cd $HBASE_HOME/bin
./graceful_stop.sh --restart --reload debug Node name
参数介绍:
restart:删除数据后重新启动
reload:移动数据后停止服务
debug:输出有关执行过程的信息
Node Name:指定要停止的节点
- 故障排除:
Hbase fsck
HBase 提供了 HBCK 工具来检查数据一致性。
数据一致性是指:
1、将每个区域正确分配给一个区域服务器,并且该区域的位置信息和状态正确。
2、每个表都是完整的,每个可能的行键都可以对应一个唯一的区域。
3、与查询相关的命令收集的用法。