HBASE的伪分布安装与分布式安装

一 伪分布式安装

1.下载解压给权限

可以从官方下载地址下载 HBase 最新版本,推荐 stable目录下的二进制版本。我下载的是 hbase-1.1.3-bin.tar.gz 。确保你下载的版本与你现存的 Hadoop 版本兼容(兼容列表)以及支持的JDK版本(从HBase 1.0.x 已经不支持 JDK 6 了)。

兼容列表:

  1. tar -zxvf hbase-1.1.3-bin.tar.gz
  2. sudo mv hbase-1.1.3 /usr/local/hbase
  3. cd /usr/local/
  4. sudo chmod -R 775 hbase
  5. sudo chown -R hadoop:hadoop: hbase

2.修改HBASE的JDK环境变量

  1. sudo nano /usr/local/hbase/conf/hbase-env.sh
  2. export JAVA_HOME=/usr/lib/jvm/

3. 修改hbase-site.xml

  1. hadoop@Master:/usr/local/hbase/conf$ sudo nano hbase-site.xml
  2. <configuration>
  3. <property>
  4. <name>hbase.rootdir</name>
  5. <value>hdfs://Master:9000/hbase</value>
  6. </property>
  7. <property>
  8. <name>hbase.cluster.distributed</name>
  9. <value>true</value>
  10. </property>
  11. </configuration>

4.启动验证

  • 启动hbase
  1. start-hbase.sh
  • 进入hbase shell
  1. hadoop@Master:/usr/local/hbase/bin$ ./hbase shell
  2. HBase Shell; enter 'help<RETURN>' for list of supported commands.
  3. Type "exit<RETURN>" to leave the HBase Shell
  4. Version 1.1.3, r72bc50f5fafeb105b2139e42bbee3d61ca724989, Sat Jan 16 18:29:00 PST 2016
  5. hbase(main):001:0>
  6. hadoop@Master:/usr/local/hbase/bin$ jps
  7. 1601 ResourceManager
  8. 1430 SecondaryNameNode
  9. 2374 HRegionServer
  10. 1883 JobHistoryServer
  11. 3037 Jps
  12. 2253 HMaster
  13. 1246 NameNode
  14. 2190 HQuorumPeer
  15. hadoop@Master:/usr/local/hbase/bin$

1.HBASE的伪分布安装与分布式安装 - 图1

5.尝试一下Thrift通信服务

这里我们尝试使用HBase 的 Thrift API,用Python和HBase进行简单交互。首先启动HBase的Thrift服务:

  1. hadoop@Master:/usr/local/hbase/bin$ ./hbase-daemon.sh start thrift
  2. starting thrift, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-thrift-Master.out
  3. 然后安装Pythonhappybase模块,HBase是对 HBaseThrift接口的一个简单包装:
  4. chuguaningdeMBP:~ chuguangming$ sudo pip install happybase
  5. 然后启动ipython,如果没有ipython,请通过pip安装:
  6. Python 2.7.6 (default, Mar 22 2014, 22:59:56)
  7. Type "copyright", "credits" or "license" for more information.
  8. IPython 3.2.1 -- An enhanced Interactive Python.
  9. ? -> Introduction and overview of IPython's features.
  10. %quickref -> Quick reference.
  11. help -> Python's own help system.
  12. object? -> Details about 'object', use 'object??' for extra details.
  13. In [1]: import happybase
  14. In [2]: connection = happybase.Connection('localhost')
  15. In [3]: connection.tables()
  16. Out[3]: []
  17. In [4]: families = {'basic':dict(max_versions=3),'detail':dict(max_versions=1000),'comment':dict(max_versions=1000),'answer':dict(max_versions=1000),'follower':dict(max_versions=1000)}
  18. In [5]: connection.create_table('question',families)
  19. In [6]: connection.tables()
  20. Out[6]: ['question']
  21. In [7]:

二 分布式安装

1 软件环境

OS:Linux Master 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Java:java version “1.8.0_65”
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

Hadoop:Hadoop 2.6.0

Hbase:hbase-1.1.3

2 集群部署机器:

IP HostName Master RegionServer
192.168.1.80 Master yes no
192.168.1.82 Slave1 no yes
192.168.1.84 Slave2 no yes

3 准备:

假设你已经安装部署好了 Hadoop 集群和 Java,可以参考以前的部署 文章。

4 Master的安装:

1基本安装

  1. tar -zxvf hbase-1.0.0-bin.tar.gz
  2. sudo mv hbase-1.0.0 /usr/local/hbase
  3. cd /usr/local/
  4. sudo chmod -R 775 hbase
  5. sudo chown -R hadoop:hadoop: hbase

2修改$JAVA_HOME为jdk安装目录

  1. usr/local/hbase/conf$ sudo nano hbase-env.sh
  2. export JAVA_HOME=/usr/lib/jvm/

3修改hbase-site.xml

  1. /usr/local/hbase/conf/hbase-site.xml
  2. <configuration>
  3. <property>
  4. <name>hbase.rootdir</name>
  5. <value>hdfs://Master:9000/hbase</value>
  6. </property>
  7. <property>
  8. <name>hbase.cluster.distributed</name>
  9. <value>true</value>
  10. </property>
  11. <property>
  12. <name>hbase.zookeeper.quorum</name>
  13. <value>Master,Slave1,Slave2</value>
  14. </property>
  15. <property>
  16. <name>hbase.zookeeper.property.dataDir</name>
  17. <value>/home/hadoop</value>
  18. </property>
  19. </configuration>

其中第一个属性指定本机的hbase的存储目录,必须与Hadoop集群的core-site.xml文件配置保持一致;第二个属性指定hbase的运行模式,true代表全分布模式;第三个属性指定 Zookeeper 管理的机器,一般为奇数个;第四个属性是数据存放的路径。这里我使用的默认的 HBase 自带的 Zookeeper。

4配置regionservers

  1. Slave1
  2. Slave2

regionservers文件列出了所有运行hbase的机器(即HRegionServer)。此文件的配置和Hadoop中的slaves文件十分相似,每行指定一台机器的主机名。当HBase启动的时候,会将此文件中列出的所有机器启动。关闭时亦如此。

5修改 ulimit 限制

HBase 会在同一时间打开大量的文件句柄和进程,超过 Linux 的默认限制,导致可能会出现错误。
所以编辑/etc/security/limits.conf文件,添加以下两行,提高能打开的句柄数量和进程数量。注意将hadoop改成你运行 HBase 的用户名。

  1. hadoop - nofile 65535
  2. hadoop - nproc 32000

还需要在 /etc/pam.d/common-session 加上这一行:

  1. session required pam_limits.so

否则在/etc/security/limits.conf上的配置不会生效。

最后还要注销(logout或者exit)后再登录,这些配置才能生效!使用ulimit -n -u命令查看最大文件和进程数量是否改变了。记得在每台安装 HBase 的机器上运行哦。

5 Slave上面的操作

基本上把以上步骤重复一下就可以了.

在 Master 节点上执行:

  1. cd /usr/local
  2. hadoop@hadoopmaster:/usr/local$ sudo tar cvfz ~/hbase.tar.gz ./hbase
  3. scp ~/hbase.tar.gz hadoop@hadoopslave1:/home/hadoop/
  4. scp ~/hbase.tar.gz hadoop@hadoopslave2:/home/hadoop/

在Slave节点上执行:

  1. hadoop@hadoopslave1:/usr/local$ sudo tar xvfz ~/hbase.tar.gz -C /usr/local/
  2. hadoop@hadoopslave1:/usr/local$ sudo chown -R hadoop:hadoop /usr/local/hbase/
  3. hadoop@hadoopslave1:/usr/local$ sudo chmod -R 775 /usr/local/hbase/

6 运行 HBase

在master上运行

  1. start-dfs.sh
  2. start-yarn.sh
  3. mr-jobhistory-daemon.sh start historyserver
  4. start-hbase.sh

7 验证 HBase 成功安装

在 master 运行 jps 应该会有HMaster进程。在各个 slave 上运行jps 应该会有HQuorumPeer,HRegionServer两个进程。
在浏览器中输入 http://Master:16010 可以看到 HBase Web UI 。

1.HBASE的伪分布安装与分布式安装 - 图2