一 伪分布式安装
1.下载解压给权限
可以从官方下载地址下载 HBase 最新版本,推荐 stable目录下的二进制版本。我下载的是 hbase-1.1.3-bin.tar.gz 。确保你下载的版本与你现存的 Hadoop 版本兼容(兼容列表)以及支持的JDK版本(从HBase 1.0.x 已经不支持 JDK 6 了)。
兼容列表:
tar -zxvf hbase-1.1.3-bin.tar.gz sudo mv hbase-1.1.3 /usr/local/hbase cd /usr/local/ sudo chmod -R 775 hbase sudo chown -R hadoop:hadoop: hbase
2.修改HBASE的JDK环境变量
sudo nano /usr/local/hbase/conf/hbase-env.sh export JAVA_HOME=/usr/lib/jvm/
3. 修改hbase-site.xml
hadoop@Master:/usr/local/hbase/conf$ sudo nano hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://Master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> </configuration>
4.启动验证
启动hbase
start-hbase.sh
进入hbase shell
hadoop@Master:/usr/local/hbase/bin$ ./hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.1.3, r72bc50f5fafeb105b2139e42bbee3d61ca724989, Sat Jan 16 18:29:00 PST 2016 hbase(main):001:0> hadoop@Master:/usr/local/hbase/bin$ jps 1601 ResourceManager 1430 SecondaryNameNode 2374 HRegionServer 1883 JobHistoryServer 3037 Jps 2253 HMaster 1246 NameNode 2190 HQuorumPeer hadoop@Master:/usr/local/hbase/bin$
5.尝试一下Thrift通信服务
这里我们尝试使用HBase 的 Thrift API,用Python和HBase进行简单交互。首先启动HBase的Thrift服务:
hadoop@Master:/usr/local/hbase/bin$ ./hbase-daemon.sh start thrift starting thrift, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-thrift-Master.out 然后安装Python的happybase模块,HBase是对 HBase的Thrift接口的一个简单包装: chuguaningdeMBP:~ chuguangming$ sudo pip install happybase 然后启动ipython,如果没有ipython,请通过pip安装: Python 2.7.6 (default, Mar 22 2014, 22:59:56) Type "copyright", "credits" or "license" for more information. IPython 3.2.1 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: import happybase In [2]: connection = happybase.Connection('localhost') In [3]: connection.tables() Out[3]: [] 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)} In [5]: connection.create_table('question',families) In [6]: connection.tables() Out[6]: ['question'] 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基本安装
tar -zxvf hbase-1.0.0-bin.tar.gz sudo mv hbase-1.0.0 /usr/local/hbase cd /usr/local/ sudo chmod -R 775 hbase sudo chown -R hadoop:hadoop: hbase
2修改$JAVA_HOME为jdk安装目录
usr/local/hbase/conf$ sudo nano hbase-env.sh export JAVA_HOME=/usr/lib/jvm/
3修改hbase-site.xml
/usr/local/hbase/conf/hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://Master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>Master,Slave1,Slave2</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop</value> </property> </configuration>
其中第一个属性指定本机的hbase的存储目录,必须与Hadoop集群的core-site.xml文件配置保持一致;第二个属性指定hbase的运行模式,true代表全分布模式;第三个属性指定 Zookeeper 管理的机器,一般为奇数个;第四个属性是数据存放的路径。这里我使用的默认的 HBase 自带的 Zookeeper。
4配置regionservers
Slave1 Slave2
regionservers文件列出了所有运行hbase的机器(即HRegionServer)。此文件的配置和Hadoop中的slaves文件十分相似,每行指定一台机器的主机名。当HBase启动的时候,会将此文件中列出的所有机器启动。关闭时亦如此。
5修改 ulimit 限制
HBase 会在同一时间打开大量的文件句柄和进程,超过 Linux 的默认限制,导致可能会出现错误。 所以编辑/etc/security/limits.conf文件,添加以下两行,提高能打开的句柄数量和进程数量。注意将hadoop改成你运行 HBase 的用户名。
hadoop - nofile 65535 hadoop - nproc 32000
还需要在 /etc/pam.d/common-session 加上这一行:
session required pam_limits.so
否则在/etc/security/limits.conf上的配置不会生效。
最后还要注销(logout或者exit)后再登录,这些配置才能生效!使用ulimit -n -u命令查看最大文件和进程数量是否改变了。记得在每台安装 HBase 的机器上运行哦。
5 Slave上面的操作
基本上把以上步骤重复一下就可以了.
在 Master 节点上执行:
cd /usr/local hadoop@hadoopmaster:/usr/local$ sudo tar cvfz ~/hbase.tar.gz ./hbase scp ~/hbase.tar.gz hadoop@hadoopslave1:/home/hadoop/ scp ~/hbase.tar.gz hadoop@hadoopslave2:/home/hadoop/
在Slave节点上执行:
hadoop@hadoopslave1:/usr/local$ sudo tar xvfz ~/hbase.tar.gz -C /usr/local/ hadoop@hadoopslave1:/usr/local$ sudo chown -R hadoop:hadoop /usr/local/hbase/ hadoop@hadoopslave1:/usr/local$ sudo chmod -R 775 /usr/local/hbase/
6 运行 HBase
在master上运行
start-dfs.sh start-yarn.sh mr-jobhistory-daemon.sh start historyserver start-hbase.sh
7 验证 HBase 成功安装
在 master 运行 jps 应该会有HMaster进程。在各个 slave 上运行jps 应该会有HQuorumPeer,HRegionServer两个进程。 在浏览器中输入 http://Master:16010 可以看到 HBase Web UI 。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程