第2章
◄ 让HBase跑起来 ►
以下内容均假设用户已经安装了Java环境。Hadoop和HBase都要求JDK版本至少是1.6以上,建议使用Oracle提供的JDK版本。
先从Apache HBase页面下载HBase(http://www.apache.org/dyn/closer.cgi/HBase/)。
由于我们的HBase是安装在本来已经有的Hadoop上,而Hadoop又分为HA(High Avaliable,高可用性)模式和非HA模式(实际上生产环境都是HA环境的,这样可以保证没有单点故障问题)。
什么是非HA模式
非HA模式是相对于HA模式而言的。如果你不知道什么是Hadoop HA模式,那么你用的多半是非HA模式。HA模式是用来防止单点故障的。
什么是单点故障
通俗地说:单点故障就是你的系统太依赖于某一个节点,以至于只要该节点宕掉了,就算整个集群的其他节点都是好的,你的集群也相当于整体瘫痪。单点故障问题一般会出现在集群的元数据存储节点上,这种节点一般一个集群就一个,它一旦坏了,整个系统就不能正常使用了。所以说这个词相当于一个贬义词,我们在做系统架构的时候要尽量避免我们搭建的系统有单点故障问题。
Hadoop怎么避免单点故障问题
Hadoop的单点故障一般会出在namenode上(关于什么是namenode的相关资料请自行查询Hadoop的文献,本书由于涵盖范围有限不会详细介绍)。Hadoop的做法是,同时启动两个namenode:其中一个工作,另一个总是处于后备机(standby)状态,让它只是单纯地同步活跃机(active)的数据,当活跃机宕掉的时候就可以自动切换过去。这种模式称为HA模式。HA模式下不能用<namenode主机>:<端口>的模式来访问Hadoop集群,因为namenode主机已经不是一个固定的IP了,而是采用<serviceid>的方式来访问,这个serviceid存储在ZooKeeper里面。
什么是ZooKeeper
ZooKeeper是一个轻量级的分布式架构集群。以往我们(实际上一般人不会干这事,这里的我们指的是Hadoop和HBase的开发者这种组件编写者)在编写组件的时候需要自己编写节点的注册、取消、维持等代码。比如节点是否存活的检测、节点失效后的处理等这些事情。 ZooKeeper的诞生把我们从这些工作量中解放出来了,因为ZooKeeper会启动一个属于它自己的集群,而这个集群干的事情就是维护你的节点,这样你不需要再自己编写这些代码了。目前很多架构,比如Hadoop、HBase等都采用ZooKeeper作为分布式节点管理的解决方案。
我要采用什么方式来安装Hadoop
事实上有很多种方式来安装Hadoop。比如Cloudera出品的一键安装,还有Hortonworks出品的Ambari。这些工具都提供了很好的图形化界面和各种预设。不过并不建议一上来就用这些工具,因为Hadoop从本质上说还是一个开源的很复杂的架构,有很多概念知识你并不熟悉,用这些工具搭建的集群出问题的话,你很难去排查问题。最重要的是,你学不到什么东西,只是迷迷糊糊地把它装上去了而已,对你的职业发展无甚裨益。当你懂得了一些之后,再用这些工具来维护,那才是很不错的选择。所以,建议你用Hadoop官网上下载的工具和根据Hadoop官网的教程来安装Hadoop。
当你从Hadoop官网(http://hadoop.apache.org/releases.html)下载好了Hadoop的安装包,然后根据教程一步一步地安装好Hadoop后,接下来就是安装HBase了。