Bigdata-安装Hbase-1.1.0.1

hbase版本为1.1.0.1

1.下载地址为hbase-1.1.0.1-bin.tar.gz,总共98.1M
zookeeper 版本是3.4.6(zookeeper +hadoop 集群配置请查看https://blog.csdn.net/adson1987/article/details/90199859),官网下载当前3.4.6版本,
hadoop 为2.6.0版(集群配置过程请查看https://blog.csdn.net/adson1987/article/details/90199759).

2.在3台机器上配置的hadoop集群,
Master:192.168.0.1,
Slave01:192.168.0.2,
Slave02:192.168.0.3 .

在Master机器上/home/hadoop目录解压hbase-1.1.0.1-bin.tar.gz
tar -zxvf hbase-1.1.0.1-bin.tar.gz

3.配置环境变量,sudo vim /etc/profile,有人用/.bashrc 配置,也可以吧,不过我喜欢在profile里面,添加HBase 解压目录,path路径(path 和原来的hadoop 和jdk 的path 路径不必要放在一个path):
export HBASE_HOME=/usr/local/hbase-1.1.0.1
export PATH= H B A S E H O M E / b i n : HBASE_HOME/bin: HBASEHOME/bin:PATH

进入conf 目录下面的,hbase-env.sh和hbase-site.xml,
在hbase-env.sh里面添加jdk 安装路径
export JAVA_HOME=/usr/local/jdk1.7.0_80

1. #hbase-env.sh  
2. export HBASE_OPTS="-XX:+UseConcMarkSweepGC"  
3. export JAVA_HOME=/usr/java/jdk1.7.0_05  
4. export HBASE_HOME=/opt/hbase-0.94.0  
5. export HADOOP_HOME=/opt/hadoop-1.0.3  
6. export PATH=$PATH:/opt/hbase-0.94.0/bin  
7. export HBASE_MANAGES_ZK=true  
需要注意的地方是 ZooKeeper的配置。这与 hbase-env.sh 文件相关,文件中 HBASE_MANAGES_ZK 环境变量用来设置是使用hbase默认自带的 Zookeeper还是使用独立的ZooKeeper。HBASE_MANAGES_ZK=false 时使用独立的,为true时使用默认自带的。

在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,Slave01,Slave02</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/storage/zookeeper</value>
</property>
</configuration>

修改regionservers,将文件内容设置为:
Master
Slave01
Slave02

到这里本地的HBase环境安装完成,cd /home/hadoop/hbase-1.1.0.1 ,分别发送到2个slave的home/hadoop/目录下,命令分别如下:

scp -r hbase-1.1.0.1 hadoop@slave01:/home/hadoop/
scp -r hbase-1.1.0.1 hadoop@slave02:/home/hadoop/
记得核对每台机器的profile,jdk路径是否和hbase-env.sh下面的路径相同
,配置完成,如果zookeeper和hadoop正在运行,则关闭所有的hadoop 和zookeeper,如果条件允许,则重启所有机器.

启动hbase时要确保hdfs已经启动,HBase的启动顺序为:HDFS->Zookeeper->HBase,运行命令如下:
start-all.sh
bin/zkServer.sh start
bin/start-hbase.sh

用hadoop@Master:/usr/local/hbase-1.1.0.1$ ./bin/hbase shell命令进入HBase运行界面

遇到的问题:
 Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

安装Hadoop启动之后总有警告:Unable to load native-hadoop library for your platform... using builtin-Java classes where applicable
原因:
Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要自己编译64位的版本。

1、首先找到对应自己hadoop版本的64位的lib包,可以自己手动去编译,但比较麻烦,也可以去网上找,好多都有已经编译好了的。

2、可以去网站:http://dl.bintray.com/sequenceiq/sequenceiq-bin/  下载对应的编译版本
3、将准备好的64位的lib包解压到已经安装好的hadoop安装目录的lib/native 和 lib目录下:


如果你也是hadoop2.6的可以下载下面这个:
  http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar
若是其他的hadoop版本,下载下面这个:
      http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.*.0.tar

[hadoop@djt002 native]$ tar -xvf hadoop-native-64-2.6.0.tar -C $HADOOP_HOME/lib/native
[hadoop@djt002 native]$ tar -xvf hadoop-native-64-2.6.0.tar -C $HADOOP_HOME/lib
 以上,这两个命令都要执行。
 
 
然后增加环境变量
 [root@djt002 native]# vim /etc/profile
增加下面的内容:
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
 
 
 让环境变量生效
[root@djt002 native]# source /etc/profile




可以创建创建一个名为 test1 的表,这个表只有一个列为 cf。其中表名、列都要用单引号括起来,并以逗号隔开。
=> []
hbase(main):002:0> create ‘test’, ‘cf’
0 row(s) in 2.6380 seconds

=> Hbase::Table - test
hbase(main):003:0> put ‘test’, ‘row1’, ‘cf:a’, ‘value1’
0 row(s) in 0.5900 seconds

hbase(main):004:0> put ‘test’, ‘row2’, ‘cf:b’, ‘value2’
0 row(s) in 0.0310 seconds

hbase(main):005:0> put ‘test’, ‘row3’, ‘cf:c’, ‘value3’
0 row(s) in 0.0380 seconds

hbase(main):006:0> list
TABLE
test
1 row(s) in 0.0270 seconds

=> [“test”]
hbase(main):007:0> describe ‘test’
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => ‘cf’, DATA_BLOCK_ENCODING => ‘NONE’, BLOOMFILTER => ‘ROW’, REPLICATION_SCOPE => ‘0’, VERSIONS => ‘1’, COMPRESSION => ‘NONE’, MIN_VERSIONS => ‘0’, T
TL => ‘FOREVER’, KEEP_DELETED_CELLS => ‘FALSE’, BLOCKSIZE => ‘65536’, IN_MEMORY => ‘false’, BLOCKCACHE => ‘true’}
1 row(s) in 0.0980 seconds

hbase(main):008:0> get ‘test’,‘row2’
COLUMN CELL
cf:b timestamp=1435579713449, value=value2
1 row(s) in 0.1780 seconds

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐