关于hbase二级索引的描述 hbase的二级索引应用


关于hbase二级索引的描述 hbase的二级索引应用

文章插图
Phoenix 在 HBase 生态系统中占据了非常重要的地位,本文主要包括以下几方面内容:
Phoenix 介绍CDH HBase 集成 Phoenix使用 Phoenix 创建 HBase 二级索引Phoenix 索引类型介绍Phoenix 介绍Phoenix 是构建在 HBase 之上的高效的 SQL 引擎,同时具备 OLTP 和 OLAP 能力,作为 HBase 生态系统中非常重要的组件,重点的特性包括:
底层存储基于 HBase,并提供一套标准的 JDBC API 作为 HBase SQL 层;支持标准 SQL,以及完整 ACID 事务特性;为 HBase 提供了二级索引解决方案;此外,Phoenix 还和很多其他组件做了集成,比如 Spark、Hive、Flume 等 。Phoenix 与 HBase 集成,其最大的特点就是为 HBase 提供了二级索引,后文会重点介绍 。下图是 Phoenix 的基本架构:
CDH HBase 集成 Phoenix版本说明http://phoenix.apache.org/download.html;高版本 CDH 安装 Phoenix 可以参考:产品 | Cloudera正式宣布在CDH中支持Apache Phoenixhttp://archive.cloudera.com/cloudera-labs/phoenix/parcels/此外,用户还可以自行编译适合自己的Phoenix版本 。安装首先到官网下载适合自己环境的 Parcel 安装包,并发布到 httpd 服务:
[root@hadoop-01 /var/www/html/phoenix/4.14.0]$ lltotal 300524-rw-r--r-- 1 root root 307722240 Feb 3 19:30 APACHE_PHOENIX-4.14.0-cdh5.11.2.p0.3-el7.parcel-rw-r--r-- 1 root root 178 Feb 3 19:28 APACHE_PHOENIX-4.14.0-cdh5.11.2.p0.3-el7.parcel.sha512-rw-r--r-- 1 root root 5081 Feb 3 19:30 manifest.json(可左右滑动)
然后配置成 CDH 远程 Parcel 存储库 url:接下来下载,分配,激活完成安装即可 。配置安装完 Phoenix 后,需要做一些必要配置才能使用 Phoenix,CDH HBase 配置界面配置如下两处:
1. hbase-site.xml 的 HBase 服务高级配置代码段(安全阀)
2. hbase-site.xml 的 HBase 客户端高级配置代码段(安全阀)
添加如下参数配置:
<!-- 二级索引支持 --><property><name>hbase.regionserver.wal.codec</name><value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value></property><!-- 命名空间映射开启,Phoenix4.8.0开始支持 --><property><name>phoenix.schema.isNamespaceMappingEnabled</name><value>true</value></property><property><name>phoenix.schema.mapSystemTablesToNamespace</name><value>true</value></property>(可左右滑动)
然后,按照提示重启HBase服务并重新部署客户端配置即可 。
命令行使用CDH 安装后环境变量都已经配置好了,可以直接使用 phoenix-sqlline.py,如下:
[root@hadoop-01 ~]$ phoenix-phoenix-performance.py phoenix-psql.py phoenix-sqlline.py phoenix-utils.py(可左右滑动)
执行 phoenix-sqlline.py 初始化使用 Phoenix:
然后我们查看下 HBase 中 Phoenix 的系统表:
hbase(main):003:0> listSYSTEM:CATALOGSYSTEM:FUNCTIONSYSTEM:LOGSYSTEM:MUTEXSYSTEM:SEQUENCESYSTEM:STATS(可左右滑动)
接下来看一下如何在 Phoenix 中创建 HBase 表的二级索引 。
使用 Phoenix 创建 HBase 二级索引映射已存在的 HBase 表1. 查看 HBase 表当前 HBase 中存在一张操作日志表 ns1000:operate_log,数据量近280w,包括14个字段,如下:
hbase(main):017:0> count 'ns1000:operate_log', INTERVAL => 100000...2799827 row(s) in 173.4200 seconds=> 2799827hbase(main):018:0> scan 'ns1000:operate_log', LIMIT => 1ROW COLUMN+CELLx00x00x12x12x00x00x00x0D1538216707720 column=f:appVersion, timestamp=1538216707892, value=https://www.520longzhigu.com/diannao/2.22.0x00x00x12x12x00x00x00x0D1538216707720 column=f:area, timestamp=1538216707892, value=xE6xB1x9FxE5x8Cx97xE5x8CxBAx00x00x12x12x00x00x00x0D1538216707720 column=f:authId, timestamp=1538216707892, value=x00x00x12x12x00x00x00x0D1538216707720 column=f:city, timestamp=1538216707892, value=xE9x87x8DxE5xBAx86xE5xB8x82x00x00x12x12x00x00x00x0D1538216707720 column=f:imei, timestamp=1538216707892, value=AF36147F-8106-47F0-B58F-A3FB75DBE325x00x00x12x12x00x00x00x0D1538216707720 column=f:lat, timestamp=1538216707892, value=29.577587127685547x00x00x12x12x00x00x00x0D1538216707720 column=f:lon, timestamp=1538216707892, value=106.50493621826172x00x00x12x12x00x00x00x0D1538216707720 column=f:memberType, timestamp=1538216707892, value=0x00x00x12x12x00x00x00x0D1538216707720 column=f:mobileManufacturer, timestamp=1538216707892, value=iPhonex00x00x12x12x00x00x00x0D1538216707720 column=f:mobileModel, timestamp=1538216707892, value=iPhone 6 Plusx00x00x12x12x00x00x00x0D1538216707720 column=f:province, timestamp=1538216707892, value=xE9x87x8DxE5xBAx86xE5xB8x82x00x00x12x12x00x00x00x0D1538216707720 column=f:systemType, timestamp=1538216707892, value=1x00x00x12x12x00x00x00x0D1538216707720 column=f:systemVersion, timestamp=1538216707892, value=12.0x00x00x12x12x00x00x00x0D1538216707720 column=f:time, timestamp=1538216707892, value=15382167077201 row(s) in 0.0460 seconds(可左右滑动)


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: