栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

安装配置Phoenix

安装配置Phoenix

一、背景介绍

Phoenix是Hbase的开源SQL皮肤。可以使用标准JDBC API代替Hbase客户端API来创建表,插入数据和查询Hbase数据。

1) 容易集成:如Spark,Hive,Pig,Flume和Map Reduce。

2) 性能好:直接使用Hbase API以及协处理器和自定义过滤器,可以为小型查询提供毫秒级的性能,或者为数千万行提供数秒的性能。

3) 操作简单:DML命令以及通过DDL命令创建表和版本化增量更改。

4) 安全功能: 支持GRANT和REVOKE 。

5) 完美支持Hbase二级索引创建。

二、安装配置

1)下载安装并解压压缩包。这里下载的是phoenix-hbase-1.4-4.16.1-bin.tar.gz。解压命令如下:

tar -zxvf phoenix-hbase-1.4-4.16.1-bin.tar.gz

2)配置环境变量。将以下部分放在环境变量文件中。记得把$PHOENIX_HOME换成自己的。

export PHOENIX_HOME=/home/LL/phoenix/phoenix-hbase-1.4-4.16.1-bin
export PHOENIX_CLASSPATH=$PHOENIX_HOME 
export PATH=$PATH:$PHOENIX_HOME/bin

 编辑好后切记要让环境变量文件生效:

source .bashrc

3)复制server文件到$Hbase_HOME/lib目录下(每台机器都要发送)

复制到本机:

cp phoenix-server-hbase-1.4-4.16.1.jar /home/LL/hbase/hbase-1.4.13/lib

复制到集群中其他节点上:

scp -r ./phoenix-server-hbase-1.4-4.16.1.jar LL@westgisB041:/home/LL/hbase/hbase-1.4.13/lib

4)进入hbase/conf目录,启用二级索引。(建立二级索引,将业务需要的数据联立建立索引,方便查询,但是如果用 hbase 维护的话会很麻烦)

·为什么要做二级索引?

对于Hbase而言,如果想精确地定位到某行记录,唯一的办法是通过rowkey来查询。如果不通过rowkey来查找数据,就必须逐行地比较每一列的值,即全表扫描。对于较大的表,全表扫描的代价是不可接受的。但是,很多情况下,需要从多个角度查询数据。例如,在定位某个人的时候,可以通过姓名、身份证号、学籍号等不同的角度来查询,要想把这么多角度的数据都放到rowkey中几乎不可能(业务的灵活性不允许,对rowkey长度的要求也不允许)。所以,需要secondary index(二级索引)来完成这件事。secondary index的原理很简单,但是如果自己维护的话则会麻烦一些。现在,Phoenix已经提供了对Hbase secondary index的支持。
本段转载自CSDN博主「会星一击」的原创文章。
原文链接:https://blog.csdn.net/sinat_36121406/article/details/82839003

 进入$Hbase_HOME/conf,修改hbase-site.xml文件内容,加入下面这一段内容:


   hbase.regionserver.wal.codec
   org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec



  phoenix.schema.isNamespaceMappingEnabled
  true



  phoenix.schema.mapSystemTablesToNamespace
  true



  phoenix.functions.allowUserDefinedFunctions
  true
  enable UDF functions


将hbase-site.xml拷贝到$PHOENIX_HOME/bin目录下:

cp hbase-site.xml /home/LL/phoenix/phoenix-hbase-1.4-4.16.1-bin/bin

修改配置后,重启hbase。

三、启动phoenix及操作

进入$PHOENIX_HOME/bin目录下,输入以下命令:

./sqlline.py

 输入!tables:

!tables

创建表格:

create table test_user(emp_id bigint primary key,emp_name varchar(10));
select * from test_user;

 插入数据:

upsert into test_user values(1,'luna');

 查询数据:

select * from test_user;

删除记录:

delete from test_user where emp_id=1;

删除表:

drop table test_user;

 退出命令行:

!quit

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/632787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号