大数据——Phoenix安装、配置和使用
Phoenix安装、配置和使用下载Phoenix安装和配置PhoenixPhoenix概述Phoenix应用场景Phoenix架构Phoenix SQL语法Phoenix支持的关键字类型Phoenix操作HBase示例下载Phoenix下载地址:Phoenix提取码:4p4t安装和配置Phoenix把下载好的安装包放入software目录下解压Phoenix到opt目录下[root@hadoop1
·
Phoenix安装、配置和使用
下载Phoenix
下载地址:Phoenix
提取码:4p4t
安装和配置Phoenix
- 把下载好的安装包放入software目录下
- 解压Phoenix到opt目录下
[root@hadoop100 software]# tar -zxvf apache-phoenix-4.14.0-cdh5.14.2-bin.tar.gz -C /opt
- 进入opt目录下
[root@hadoop100 software]# cd /opt
- 进入Phoenix的bin目录下
[root@hadoop100 opt]# cd apache-phoenix-4.14.0-cdh5.14.2-bin/
- 把phoenix-4.14.0-cdh5.14.2-server.jar包复制到hbase目录下的lib目录下
[root@hadoop100 apache-phoenix-4.14.0-cdh5.14.2-bin]# cp phoenix-4.14.0-cdh5.14.2-server.jar /opt/hbase/lib/
- 配置hbase-site.xml文件
[root@hadoop100 apache-phoenix-4.14.0-cdh5.14.2-bin]# vi /opt/hbase/conf/hbase-site.xml
- 添加
//把true改为false
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.mapSystemTablesToNamespace</name>
<value>true</value>
</property>
<property>
<name>phoenix.functions.allowUserDefinedFunctions</name>
<value>true</value>
<description>enable UDF functions</description>
</property>
- 把配置好的hbase-site.xml复制到Phoenix目录下的bin目录下
// An highlighted block
[root@hadoop100 hbase]# cp conf/hbase-site.xml ../apache-phoenix-4.14.0-cdh5.14.2-bin/bin/
-
输入y
-
重启hbase master
[root@hadoop100 hbase]# hbase-daemon.sh restart master
- 进入Phoenix目录下的bin目录下启动Phoenix
[root@hadoop100 apache-phoenix-4.14.0-cdh5.14.2-bin]# cd bin/
[root@hadoop100 bin]# ./sqlline.py
- 到这步Phoenix已经安装配置成功了
Phoenix概述
Phoenix简介
- 构建在HBase上的SQL层
- 使用标准SQL在HBase中管理数据
- 使用JDBC来创建表,插入数据、对HBase数据进行查询
- Phoenix JDBC Driver容易嵌入到支持JDBC的程序中
Phoenix无法代替RDBMS
- 缺乏完整约束,很多领域尚不成熟后
Phoenix使HBase更易用
Phoenix应用场景
Phoenix适合场景
- 快速而容易地构建基于HBase的应用程序
- 需要极大的规模、性能和并发性的SQL应用程序
- 在转换到Hadoop时重用已有的SQL技能
- BI工具(对SQL支持较好)
Phoenix不适合场景
- 涉及大型Join操作或高级SQL特性的复杂SQL查询
- Full-Table Scans
- ETL jobs
- Application Drivers/Interface
Phoenix架构
Phoenix SQL语法
Phoenix支持类SQL语法
Java API Code | Phoenix DDL |
---|---|
HBaseAdmin hbase = new HBaseAdmin(conf); HTableDescriptor desc = new HTableDescriptor(“us_population”); HColumnDescriptor state = new HColumnDescriptor(“state”.getBytes()); HColumnDescriptor city = new HColumnDescriptor(“city”.getBytes()); HColumnDescriptor population = new HColumnDescriptor(“population”.getBytes()); desc.addFamily(state); desc.addFamily(city); desc.addFamily(population); hbase.createTable(desc); |
CREATE TABLE us_population (state CHAR(2) NOT NULL,city VARCHAR NOT NULL,population BIGINTCONSTRAINT my_pk PRIMARY KEY (state, city)); |
使用更灵活 可与其他应用集成 |
常用的SQL语法<>br提供附加约束检查 |
Phoenix支持的关键字类型
Standard SQL Data Types --标准SQL 数据类型
SELECT, UPSERT, DELETE --UPSERT与标准SQL不同
JOINs: Inner and Outer
Subqueries
Secondary Indexes
GROUP BY, ORDER BY, HAVING
AVG, COUNT, MIN, MAX, SUM
Primary Keys, Constraints
CASE, COALESCE
VIEWs
PERCENT_RANK, LAST|FIRST VALUE
UNION ALL
Cross Joins
Windowing Functions --窗口函数
Transactions --事务
Authorization
Replication Management
Phoenix操作HBase
命令行操作
!tables -- 查看所有表,类似于beeline操作
CREATE TABLE company (COMPANY_ID INTEGER PRIMARY KEY, NAME VARCHAR(225)); --创建表操作
UPSERT INTO company VALUES(1, 'Microsoft'); -- 插入数据
SELECT * FROM Company; --查看数据
示例
- 查看所有表
!tables
- 创建表
create table test_emp(emp_id bigint primary key,emp_name varchar(10));
!tables
- 插入数据
upsert into test_emp values(1,'trump');
select * from test_emp;
更多推荐
所有评论(0)