Hbase分布式环境搭建
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。——百度百科
实验目的
这里我们使用5台主机来搭建分布式的hbase环境,来满足日后可能有的需求完成教员搭环境的期末考试 。
0x01硬件条件:
5台centos7主机,IP地址:x.x.x.46~50。机器的名称分别为lk,node1,node2,node3,node4。
实验条件默认使用root账户,有需要切回普通用户的情况我会提到。
0x02 材料准备:
5台主机搭建hadoop环境。
这里有连接:http://blog.csdn.net/qq_29480875/article/details/78545406
*正确配置如下:
*在jdk的官网上找一款下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html
注意一定要下jdk8的包,9会报各种各样的错误,WA到怀疑人生!!!
解压到/usr/jdk1.8.0_151。
配置环境变量:vim /etc/profile
add:
export JAVA_HOME=/usr/jdk1.8.0_151/
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin123
使之生效:source /etc/profile
hbase安装包:http://mirrors.hust.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
注意要下1.2版本以后的hbase(1.1不支持2.7.3的hadoop)
0x03环境搭建:
解压后安装在/usr目录下。
修改conf目录下的文件:
hbase-env.sh hbase-site.xml regionservers
hbase-env.sh
export JAVA_HOME=/usr/jdk1.8.0_151/ export HBASE_LOG_DIR=/usr/hbase-1.1.12/logs export HBASE_MANAGES_ZK=true #把以下2句注释掉: # Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+ export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m" export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://lk:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.master</name> <value>hdfs://lk:60000</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>lk,node1,node2,node3,node4</value> </property> </configuration>
regionservers
lk node1 node2 node3 node4
在其他节点上也相同配置。
0x04启动hbase
首先启动hadoop:
./start-all.sh
然后我们采用的是hbase自带的zookeeper,启动zookeeper的步骤可以省略,不然要先启动下zookeeper
然后启动hbase:
./start-hbase.sh
[qsb@lk bin]$ ./start-hbase.sh node3: starting zookeeper, logging to /usr/hbase-1.3.1/logs/hbase-qsb-zookeeper-node3.out node2: starting zookeeper, logging to /usr/hbase-1.3.1/logs/hbase-qsb-zookeeper-node2.out node1: starting zookeeper, logging to /usr/hbase-1.3.1/logs/hbase-qsb-zookeeper-node1.out node4: starting zookeeper, logging to /usr/hbase-1.3.1/logs/hbase-qsb-zookeeper-node4.out lk: starting zookeeper, logging to /usr/hbase-1.3.1/logs/hbase-qsb-zookeeper-lk.out starting master, logging to /usr/hbase-1.3.1/logs/hbase-qsb-master-lk.out node4: starting regionserver, logging to /usr/hbase-1.3.1/logs/hbase-qsb-regionserver-node4.out node1: starting regionserver, logging to /usr/hbase-1.3.1/logs/hbase-qsb-regionserver-node1.out node3: starting regionserver, logging to /usr/hbase-1.3.1/logs/hbase-qsb-regionserver-node3.out node2: starting regionserver, logging to /usr/hbase-1.3.1/logs/hbase-qsb-regionserver-node2.out lk: starting regionserver, logging to /usr/hbase-1.3.1/logs/hbase-qsb-regionserver-lk.out
执行jps:
26481 DataNode 26753 SecondaryNameNode 26322 NameNode 21619 HQuorumPeer 26964 ResourceManager 21700 HMaster 27126 NodeManager 21897 HRegionServer 22765 Jps [qsb@node1 ~]$ jps 10342 NodeManager 25270 HQuorumPeer 10203 DataNode 25662 Jps
执行shell:
./hbase shell
:我们来运行下命令:
status version create 'member','member_id','address','info' list describe 'member'
如下图所示:
- 如果可以成功跑起来说明环境配置成功。