HBase + Phoenix 安装试用
闲来无事,试用下hbase+Phoenix。
这里有三台主机:
node_1 // namenode, zk_1
node_2 // datanode, zk_2
node_3 // datanode, zk_3
HBase部署
在部署hbase之前环境中安装hadoop,安装教程可以自行搜索,本节主要介绍hbase的部署配置过程。
首先,需要下载 HBase ,解压到本地目录: /usr/local/hbase-0.98.16.1-hadoop2
。
增加环境变量
export HBASE_HOME=/usr/local/hbase-0.98.16.1-hadoop2
配置Hbase主要配置文件:$HBASE_HOME/conf/hbase-env.sh
(windows系统下位hbase-env.cmd
) ,$HBASE_HOME/conf/hbase-site.xml
, $HBASE_HOME/conf/regionservers
hbase-env配置
# Set environment variables here.
# java home 设置
export JAVA_HOME=/your/java/home/jdk1.7.0_60
# 设置到Hadoop的conf目录是用来引导Hbase找到Hadoop
export HBASE_CLASSPATH=/your/hadoop/home/etc/hadoop
# The maximum amount of heap to use, in MB. Default is 1000.
export HBASE_HEAPSIZE=1000
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
# 使用使用hbase自由的zookeeper, true 使用
export HBASE_MANAGES_ZK=false
hbase-site.xml配置
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 配置hbase存储在hdfs的root目录, 注意hbase不支持namenode的ha配置 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://host:ip/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/hbase-0.98.16.1-hadoop2/tmp</value>
</property>
<!-- hbase zookeeper 连接配置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node_1, node_2, node_3</value>
</property>
<!-- hbase zookeeper 数据目录配置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>$HBASE_HOME/zk</value>
</property>
</configuration>
regionservers 配置
在 $HBASE_HOME/conf/regionservers
文件中添加三台主机host:
node_1
node_2
node_3
所有配置完成后,scp -r hbase-0.98.16.1-hadoop2/
到其余两台机器,并分别为两台机器设置 $HBASE_HOME
启动hbase
在选一个节点作为master,在上面启动hbase:
cd $HBASE_HOME
bin/start-hbase.sh
验证启动是否成功:
bin/hbase shell
执行list命令,可看到hbase已有的table。
Phoenix部署
Phoenix的部署相对简单。下载与hbase对应版本的Phoenix .
解压得到 phoenix-4.6.0-HBase-0.98-bin/
。
将目录下的jar包复制到 $HBASE_HOME/lib
目录下;
将phoenix-[version]-client.jar
添加到$CLASSPATH
export CLASSPATH=$CLASSPATH:~/phoenix-4.6.0-HBase-0.98-bin/phoenix-[version]-client.jar
启动一个terminal 接口来执行sql,来验证是否成功:
sqlline.py node_1, node_2, node_3
(node_1, node_2, node3是集群zk连接)
输入 !tables
显示hbsae中已存在的table。