赞
踩
Apache Phoenix 是 HBase 的 SQL 驱动。Phoenix 使得 HBase 支持通过 JDBC 的方式进行访问,并将你的 SQL 查询转成 HBase 的扫描和相应的动作。
# 创建 phoenix 应用目录
mkdir -p /home/app/phoenix
# 创建 zookeeper 应用目录
mkdir -p /home/app/zookeeper/data/temp
# 访问 phoenix 应用目录
cd /home/app/phoenix
# 解压 phoenix 软件压缩包
tar -zxvf phoenix-hbase-2.3-5.1.2-bin.tar.gz
#配置当前用户环境变量
vi ~/.bash_profile
#在文件中添加如下命令,记得切换自己文件路径
export PHOENIX_HOME=/home/app/phoenix/phoenix-hbase-2.3-5.1.2-bin
export PATH=$PHOENIX_HOME/bin:$PATH
#立即生效
source ~/.bash_profile
# 拷贝 phoenix-pherf-5.1.2.jar 到 hbase 的 lib 目录
cp $PHOENIX_HOME/phoenix-pherf-5.1.2.jar $HBASE_HOME/lib/
# 拷贝 phoenix-server-hbase-2.3-5.1.2.jar 到 hbase 的 lib 目录
cp $PHOENIX_HOME/phoenix-server-hbase-2.3-5.1.2.jar $HBASE_HOME/lib/
# 访问 hbase 配置文件目录
cd $HBASE_HOME/conf
# 编辑 hbase-site.xml
vi hbase-site.xml
# 在文件中添加如下命令
<!-- 建立二级索引,将业务需要的数据联立建立索引,方便查询 -->
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<!-- 如果使用了 hbase 中的自定义 namespace,不仅仅使用default -->
<!-- 那么在phoenix中与之对应的是schema的概念,但是默认并没有开启,需要在增加以下配置项 -->
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.mapSystemTablesToNamespace</name>
<value>true</value>
</property>
<!-- 用户可以创建临时或永久的用户自定义函数。 -->
<!-- 这些用户自定义函数可以像内置的create、upsert、delete一样被调用 -->
<property>
<name>phoenix.functions.allowUserDefinedFunctions</name>
<value>true</value>
<description>enable UDF functions</description>
</property>
# 将 hbase-site.xml 拷贝到 phoenix/bin 目录下
cp $HBASE_HOME/conf/hbase-site.xml $PHOENIX_HOME/bin/
# cp:是否覆盖 "hbase-site.xml",输入 y 选择覆盖
# 拷贝 hadoop 的 core-site.xml 到 phoenix 的 bin 目录
cp $HADOOP_HOME/etc/hadoop/core-site.xml $PHOENIX_HOME/bin
# 拷贝 hadoop 的 hdfs-site.xml 到 phoenix 的 bin 目录
cp $HADOOP_HOME/etc/hadoop/hdfs-site.xml $PHOENIX_HOME/bin
# Hbase 停止
$HBASE_HOME/bin/stop-hbase.sh
# 启动 zookeeper 客户端
$ZK_HOME/bin/zkCli.sh -server master:2181
# 删除 hbase 注册信息
deleteall /hbase
# 退出 zookeeper 客户端
# Hbase 启动
$HBASE_HOME/bin/start-hbase.sh
# 在 phoenix/bin 下输入命令, 进入到命令行,接下来就可以操作了
$PHOENIX_HOME/bin/sqlline.py master:2181
# 查看所有表
!table
# 查询表数据
select * from SYSTEM.TASK;
# 退出
!quit
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。