准备资源:apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
一、通用安装步骤
1. 上传apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz至/opt/software目录下,将其解压到/opt/moudle目录下,并且对解压出来的目录进行更名
# 来到上传软件包的目录下
cd /opt/software/
# 解压
tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz -C ../moudle/
# 更名
mv ../moudle/apache-phoenix-5.0.0-HBase-2.0-bin/ ../moudle/phoenix-5.0.0
2. 配置环境变量
# 用文本编辑器打开自定义的环境变量脚本文件
sudo vim /etc/profile.d/my-env.sh
# 添加内容如下:
#PHOENIX环境变量
export PHOENIX_HOME=/opt/moudle/phoenix-5.0.0
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
# 保存退出并使环境变量生效
source /etc/profile
3.将Phoenix安装目录下lib中的提供和HBase互操作的server.jar包传输到HBase集群的各台机器中$HBASE_HOME/lib目录下
rsync -av $PHOENIX_HOME/phoenix-5.0.0-HBase-2.0-server.jar hadoop101:$HBASE_HOME/lib
rsync -av $PHOENIX_HOME/phoenix-5.0.0-HBase-2.0-server.jar hadoop102:$HBASE_HOME/lib
rsync -av $PHOENIX_HOME/phoenix-5.0.0-HBase-2.0-server.jar hadoop103:$HBASE_HOME/lib
二、胖客户端(thick client)安装部署
向集群中每台机器HBase配置目录、作为客户端使用的某台机器上的Phoenix配置目录下的hbase-site.xml中添加配置内容
# 要添加的配置内容为:
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
# 使用文本编辑器打开某台机器上的HBase的配置文件
vim $HBASE_HOME/conf/hbase-site.xml
# 保存退出,并分发
xrsync.sh $HBASE_HOME/conf/hbase-site.xml
# 使用文本编辑器打开作为客户端使用的机器上的Phoenix的配置文件
vim $PHOENIX_HOME/bin/hbase-site.xml
# 保存退出即可
三、瘦客户端(thin client)安装部署
QueryServer的默认端口号为:8765
四、启停
1. 框架提供启停命令
命令 | 解释 |
sqlline.py [zookeeper address] | 启动胖客户端的命令,zookeeper address是zookeeper的地址,每个主机名之间逗号分割,最后指定端口号,例如:hadoop101,hadoop102:2181 |
queryserver.py start|stop | 启动瘦客户端之前必须启动该服务;使用完瘦客户端之后,应该stop该服务 |
sqlline-thin.py | 启动瘦客户端 |
2. 启停脚本
# 于~/bin/下新建脚本文件:phoenix.sh
vim ~/bin/phoenix.sh
# 脚本内容为:
#!/bin/bash
function hasQueryServer(){
if [[ $(jps | grep -i -E 'queryserver' | wc -l) -eq 1 ]]
then
return 0
fi
return 1
}
if [[ $# -ge 1 && $# -le 2 ]]
then
case $1 in
"thick-client")
if [[ $# -eq 1 ]]
then
if [[ -z $ZOOKEEPER_HOME ]]
then
echo "Can not find zookeeper, USAGE: phoenix thick-client [zookeeper addr]|thin-client|stop-thin-client"
exit
else
for line in $(awk -F'=' '/server\.[0-9]+/{print $2}' $ZOOKEEPER_HOME/conf/zoo.cfg)
do
zkAddress=$zkAddress$(echo ${line%%:*})","
done
zkAddress=$(echo ${zkAddress%,})":2181"
echo "start $1"
sqlline.py $zkAddress
fi
else
sqlline.py "$2"
fi
;;
"thin-client")
hasQueryServer
if [[ $? -eq 1 ]]
then
queryserver.py start
fi
sqlline-thin.py
;;
"stop-thin-client")
queryserver.py stop
;;
*)
echo "USAGE: phoenix thick-client [zookeeper addr]|thin-client|stop-thin-client"
exit
;;
esac
else
echo "USAGE: phoenix thick-client [zookeeper addr]|thin-client|stop-thin-client"
exit
fi
# 保存退出,赋予脚本执行权限
chmod +x ~/bin/phoenix.sh
3. 使用语法
# 打开胖客户端
phoenix.sh thick-client
# 打开瘦客户端
phoenix.sh thin-client
# 瘦客户端退出之后,还需要关闭一个服务
phoenix.sh stop-thin-client