记录下Phoenix安装流程
简介
-
Phoenix 最早是 saleforce 的一个开源项目,后来成为 Apache 的顶级项目。 -
Phoenix 构建在 HBase 之上的开源 SQL 层. 能够让我们使用标准的 JDBC API 去建表, 插入数据和查询 HBase 中的数据, 从而可以避免使用 HBase 的客户端 API. -
在我们的应用和 HBase 之间添加了 Phoenix, 并不会降低性能, 而且我们也少写了很多代码.
特点
-
将 SQl 查询编译为 HBase 扫描 -
确定扫描 Rowkey 的最佳开始和结束位置扫描并行执行 -
将 where 子句推送到服务器端的过滤器 -
通过协处理器进行聚合操作 -
完美支持 HBase 二级索引创建 -
DML命令以及通过DDL命令创建和操作表和版本化增量更改。 -
容易集成:如Spark,Hive,Pig,Flume和Map Reduce。
安装
-
下载Phoenix http://archive.apache.org/dist/phoenix/apache-phoenix-4.14.2-HBase-1.3/
-
解压 tar -zxvf apache-phoenix-4.14.2-HBase-1.3-bin.tar.gz -C /home/mym/apps/
mv apache-phoenix-4.14.2-HBase-1.3-bin phoenix
-
复制HBase需要用到的Server和Client的2个jar(集群中Hbase都需要复制过去) cp phoenix-4.14.2-HBase-1.3-server.jar /home/mym/apps/hbase/lib/
cp phoenix-4.14.2-HBase-1.3-client.jar /home/mym/apps/hbase/lib/
-
配置环境变量 export PHOENIX_HOME=/home/mym/apps/phoenix
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
-
启动相关组件:hadoop、zookeeper、hbase -
启动phoniex /home/mym/apps/phoenix/bin/sqlline.py mini1,mini2,mini3:2181
[root@mini1 bin]
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:mini1,mini2,mini3:2181 none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:mini1,mini2,mini3:2181
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/mym/apps/phoenix/phoenix-4.14.2-HBase-1.3-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/module/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html
21/08/02 02:29:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Connected to: Phoenix (version 4.14)
Driver: PhoenixEmbeddedDriver (version 4.14)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
133/133 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:mini1,mini2,mini3:2181>
如上就OK了
测试SQL
查看table
0: jdbc:phoenix:mini1,mini2,mini3:2181> !table
+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_STATE | IMMUTABL |
+
| | SYSTEM | CATALOG | SYSTEM TABLE | | | | | | false |
| | SYSTEM | FUNCTION | SYSTEM TABLE | | | | | | false |
| | SYSTEM | LOG | SYSTEM TABLE | | | | | | true |
| | SYSTEM | SEQUENCE | SYSTEM TABLE | | | | | | false |
| | SYSTEM | STATS | SYSTEM TABLE | | | | | | false |
+
0: jdbc:phoenix:mini1,mini2,mini3:2181>
OK,后面补上一些DDL、DML和二级索引等相关记录,这些都是固定语法,记录下来方便参考就行
|