博主在安装HBase1.0的过程中参考了很多网上的资料进行配置安装,得到的一个结论就是太坑嗲了,按照我看到的所有安装部署文档都走了一遍都存在这样或者那样的问题,***浪费了大把的时间也没有搞定。建议后来者在搭建HBase分布式环境时多参考一下官方资料或者按照我整理的文档进行搭建即可。
注释:以下操作步骤博主均默认为您已经完成hadoop和zookeeper安装和配置,若没有完成请参考博主大数据专栏的hadoop和zookeeper的安装博文进行搭建后再实施hbase的相关部署工作。
笔者得到的教训:
1、如果想速成***参考官方文档进行学习拜读;
2、如果时间来不及或者英文水平很low,可以参考其他博主的博客进行搭建,遇到问题时就具体问题具体解决,不要在按照其他博主的步骤再搞一遍,不要陷入恶性循环否则有可能把人搞死;
3、保持一颗百折不挠之心。
下面我们进入正题,开始我们的今天快速搭建hbase之旅。
一、安装hbase之前的前置条件:
1、请确保已经正确部署hadoop集群;
2、各计算节点系统时间保持同步;
3、确认ulimit和nproc在各计算节点值设置合理
一般情况下数据库会在同一时间使用很多的文件句柄。大多数linux系统使用的默认值1024不能满足数据库的高并发要求,所以我们需要调整该参数。
修改方法如下所示:
在limits.conf文件内添加如下内容vi /etc/security/limits.conf:
###########################################################
hadoop soft nofile 32768
hadoop hard nofile 65536
hadoop soft nproc 32768
hadoop hard nproc 65536
4、配置环境变量,在管理hbase的用户下的profile内添加如下内容:
- export HBASE_HOME=/usr/local/hbase
- export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/usr/local/hbase/bin
二、Now开始我们的Hbase安装之旅
1、下载hbase1.0的程序安装包并解压
tar -zxvf hbase-1.0.0-bin.tar.gz
2、移动到/usr/local目录下并修改hbase属主
mv hbase-1.0.0 /usr/local/hbase && chown -R hadoop:hadoop /usr/local/hbase
3、修改hadoop的配置文件hdfs-site.xml,添加内容如下:
dfs.datanode.max.xcievers
4096
4、修改hbase的配置文件vi /usr/local/hbase/conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_40
export HBASE_MANAGES_ZK=false #配置zookeeper独立启停
5、配置hbase-site.xml文件内容如下所示:
- hbase.rootdir
- hdfs://hbase01:9000/hbase
- The directory shared byRegionServers
- hbase.cluster.distributed
- true
- hbase.zookeeper.property.clientPort
- 4180
- The same as your zoo.cfg's parameter:clientPort=4180
- hbase.zookeeper.quorum
- hbase01,hbase02,hbase03
- The same as your zookeeper
- hbase.zookeeper.property.dataDir
- /home/hadoop/zoodata
- Property from ZooKeeper's config zoo.cfg's dataDir
6、分别在hbase服务器的三个节点上创建data目录
mkdir -p /home/hadoop/zookeeper
7、配置regionservers内容如下所示:
- # vi ./conf/regionservers
- hbase01
- hbase02
- hbase03
8、到此hbase的配置完成,下面将以上程序拷贝到其他region节点上去
- scp -rp /usr/local/hbase root@ip1:/usr/local
- scp -rp /usr/local/hbase root@ip2:/usr/local
- chown -R hadoop:hadoop /usr/local/hbase
9、启动zookeeper
- 在每个节点都执行
- zkServer.sh start
- 检查zookeeper是否正确启动
- zkServer.sh status
10、启动hbase数据库
- start-hbase.sh
- #在启动hbase之前请务必确认hadoop及zookeeper服务已经被正确的启动
11、测试habse分布式数据库是否已经正确运行
- #hbase shell
- #创建表
- hbase(main):002:0> create 'fengzhanhai','feng'
- #插入数据
- hbase(main):010:0> put 'fengzhanhai','2','feng:a','100'
- #取一行数据
- hbase(main):017:0> get 'fengzhanhai',1
- COLUMN CELL
- feng:a timestamp=1429509649018, value=100
- 1 row(s) in 0.1620 seconds