大数据系列6:HBase – 基于Hadoop的分布式数据库

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz

tar -xzvf zookeeper-3.4.5.tar.gz

cd zookeeper-3.4.5

cp conf/zoo_sample.cfg conf/zoo.cfg

vi conf/zoo.cfg
  修改:dataDir=/home/ysc/zookeeper
  添加:
       server.1=host001:2888:3888

maxClientCnxns=100

mkdir /home/ysc/zookeeper(注:dataDir是zookeeper的数据目录,需要手动创建)

echo 1 > /home/ysc/zookeeper/myid

启动服务:

bin/zkServer.sh start

连接服务:

bin/zkCli.sh -server host001:2181

查看服务状态:

bin/zkServer.sh status

hbase存在系统时间同步的问题,并且误差要再30s以内

sudo apt-get install ntp
sudo ntpdate -u 210.72.145.44

HBase是数据库,会在同一时间使用很多的文件句柄,大多数linux系统使用的默认值1024是不能满足的,还需要修改 hbase 用户的nproc,在压力很大的情况下,如果过低会造成 OutOfMemoryError异常

sudo vi /etc/security/limits.conf

添加:
   ysc soft nproc 32000
   ysc hard nproc 32000
   ysc soft nofile 32768
   ysc hard nofile 32768

sudo vi /etc/pam.d/common-session
添加:
   session required  pam_limits.so

wget http://mirrors.hust.edu.cn/apache/hbase/hbase-0.94.12/hbase-0.94.12.tar.gz

tar -xzvf  hbase-0.94.12.tar.gz

cd hbase-0.94.12
vi conf/hbase-env.sh
追加:
  export JAVA_HOME=/home/ysc/jdk1.7.0_40
  export HBASE_MANAGES_ZK=false
  export HBASE_HEAPSIZE=1000

vi conf/hbase-site.xml

加入:

 <property> 

  <name>hbase.rootdir</name> 

  <value>hdfs://host001:9000/hbase</value>    

 </property>

 <property> 

  <name>hbase.cluster.distributed</name> 

  <value>true</value> 

 </property> 

 <property>  

  <name>hbase.zookeeper.quorum</name>       

  <value>host001</value>  

 </property>

vi conf/regionservers

改localhost为host001

因为HBase建立在Hadoop之上,Hadoop使用的hadoop*.jar和HBase使用的必须一致。所以要将 HBase lib目录下的hadoop*.jar替换成Hadoop里面的那个,防止版本冲突。

cp  /home/ysc/hadoop-1.2.1/hadoop-core-1.2.1.jar  /home/ysc/hbase-0.94.12/lib

rm  /home/ysc/hbase-0.94.12/lib/hadoop-core-1.0.4.jar

启动hadoop并创建目录
hadoop fs -mkdir /hbase

sudo vi /etc/profile

增加:

export PATH=$PATH:/home/ysc/hbase-0.94.12/bin

source /etc/profile

启动初始 HBase 集群:

start-hbase.sh

web界面
  http://host001:60010
  http://host001:60030

停止HBase 集群:

stop-hbase.sh

启动额外备份主服务器,可以启动到 9 个备份服务器(总数10 个):

local-master-backup.sh start 1

local-master-backup.sh start 2 3

启动更多regionservers, 支持到99 个额外regionservers(总100个):

local-regionservers.sh start 1

local-regionservers.sh start 2 3 4 5

停止备份主服务器:

cat /tmp/hbase-ysc-1-master.pid | xargs kill -9

停止单独regionserver:

local-regionservers.sh stop 1

使用HBase命令行模式:

hbaseshell

命令演示:

创建表Person,列族basic和detail

create 'Person', 'basic', 'detail'

看有哪些表:

list

看是否有person表:

list 'person'

增加数据,动态增加列:

数据1

put 'Person','533001198510125838', 'basic:idcard', '533001198510125838'

put 'Person', '533001198510125838','basic:name', '章子怡'

put 'Person','533001198510125838', 'detail:age', '25'

数据2

put 'Person', '533001198510125837','basic:idcard', '533001198510125837'

put 'Person','533001198510125837', 'basic:name', '杨尚川'

put 'Person','533001198510125837', 'detail:age', '22'

查询整条数据:

get 'Person','533001198510125838'

get 'Person','533001198510125837'

查询单列数据:

get 'Person', '533001198510125837','basic:idcard'

查询多列数据:

get 'Person', '533001198510125837','basic:idcard', 'detail:age'

查询全部数据:

scan 'Person'

删除表:

disable 'Person'

drop 'Person'


 

APDPlat旗下十大开源项目

相关推荐