概要概要
概念
PhoenixはSQLクエリを提供し、SQLをJavaAPIに変換してHbaseを操作するツールです
特徴
- 特にHbaseに関連するSQLonHbaseツールに基づいています
- Phoenixを使用してHbaseのSQLベースの操作を実装する
- フェニックスを使用して、セカンダリインデックスを自動的に作成し、セカンダリインデックスを維持します
原理
- 上位層はSQLインターフェースを提供します
最下層はすべてHbaseJava APIを介して実現され、データの読み取りと書き込みは一連のスキャンとプットを構築することによって実現されます。
- 機能が非常に豊富
最下層は、セカンダリインデックスなど、さまざまな複雑な処理要件を実現できる多数の組み込みコプロセッサをカプセル化します。
特徴
- 利点
- SQLインターフェースをサポート
- セカンダリインデックスの自動メンテナンスをサポートします
- 不利益
- SQLでサポートされている構文は包括的ではありません
- その他のバグ
- Hbaseの比較に関するHive
- Hive:SQLはより包括的ですが、セカンダリインデックスをサポートしていません。最下層は分散コンピューティングツールによって実装されます
- フェニックス:SQLは比較的不完全ですが、パフォーマンスは向上しています。インデックスの実装をサポートするには、HbaseAPIを直接使用してください。
応用
- フェニックスは、SQLまたはJDBCを使用してHbaseをすばやく読み書きする必要があるシナリオに適しています
- または、セカンダリインデックスシナリオを構築して維持する必要があります
インストールと展開
-
ダウンロード
リンク:https://pan.baidu.com/s/11q28N8qwbPIMLclXwRLu2Qパスワード:9jk3 -
最初のマシンでアップロードおよび解凍
cd /export/software/
-
解凍する最初のマシン
tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz -C /export/server/
cd /export/server/
mv apache-phoenix-5.0.0-HBase-2.0-bin phoenix-5.0.0-HBase-2.0-bin
- 3つのLinuxでファイルハンドルの数を変更する
vim /etc/security/limits.conf
#在文件的末尾添加以下内容,*号不能去掉
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
- PhoenixのすべてのjarパッケージをHbaseのlibディレクトリに配布します
#拷贝到第一台机器
cd /export/server/phoenix-5.0.0-HBase-2.0-bin/
cp phoenix-* /export/server/hbase-2.1.0/lib/
cd /export/server/hbase-2.1.0/lib/
#分发给第二台和第三台
scp phoenix-* node2:$PWD
scp phoenix-* node3:$PWD
- hbase-site.xmlを変更し、属性を追加します
cd /export/server/hbase-2.1.0/conf/
vim hbase-site.xml
添加如下内容:
<!-- 关闭流检查,从2.x开始使用async -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<!-- 支持HBase命名空间映射 -->
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<!-- 支持索引预写日志编码 -->
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<!-- 配置NS映射 -->
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
- 他の2台のマシンと同期します
scp hbase-site.xml node2:$PWD
scp hbase-site.xml node3:$PWD
- フェニックスに同期する
cp hbase-site.xml /export/server/phoenix-5.0.0-HBase-2.0-bin/bin/
- Hbaseを再起動します
stop-hbase.sh
start-hbase.sh
- フェニックスを開始
cd /export/server/phoenix-5.0.0-HBase-2.0-bin/
bin/sqlline.py node1:2181
- テスト
!tables