Directorio de artículos
Visión de conjunto
concepto
Phoenix es una herramienta que proporciona consultas SQL y convierte SQL a JavaAPI para operar Hbase
Características
- Especialmente basado en las herramientas SQL en Hbase involucradas en Hbase
- Utilice Phoenix para implementar la operación basada en SQL de Hbase
- Utilice Phoenix para crear automáticamente índices secundarios y mantener índices secundarios
principio
- La capa superior proporciona una interfaz SQL
La capa inferior se realiza a través de Hbase Java API, y la lectura y escritura de datos se realizan mediante la construcción de una serie de escaneo y colocación
- Muy rico en características
La capa inferior encapsula una gran cantidad de coprocesadores integrados, que pueden lograr varios requisitos de procesamiento complejos, como índices secundarios, etc.
Características
- ventaja
- Soporte de interfaz SQL
- Apoyar el mantenimiento automático de índices secundarios
- Desventaja
- La sintaxis admitida por SQL no es completa
- Más errores
- Comparación de Hive en Hbase
- Hive: SQL es más completo, pero no admite índices secundarios. La capa inferior se implementa mediante herramientas informáticas distribuidas.
- Phoenix: SQL es relativamente incompleto, pero el rendimiento es mejor. Utilice HbaseAPI directamente para admitir la implementación de índices
solicitud
- Phoenix es adecuado para cualquier escenario que necesite usar SQL o JDBC para leer y escribir Hbase rápidamente
- O necesita crear y mantener un escenario de índice secundario
Instalación y despliegue
-
Enlace de descarga
: https://pan.baidu.com/s/11q28N8qwbPIMLclXwRLu2Q Contraseña: 9jk3 -
Cargar y descomprimir en la primera máquina
cd /export/software/
-
La primera máquina en descomprimir
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
- Modificar el número de identificadores de archivos en tres Linux
vim /etc/security/limits.conf
#在文件的末尾添加以下内容,*号不能去掉
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
- Distribuya todos los paquetes jar de Phoenix al directorio lib de Hbase
#拷贝到第一台机器
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
- Modifique hbase-site.xml y agregue atributos
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>
- Sincronizar con las otras dos máquinas
scp hbase-site.xml node2:$PWD
scp hbase-site.xml node3:$PWD
- Sincronizar con Phoenix
cp hbase-site.xml /export/server/phoenix-5.0.0-HBase-2.0-bin/bin/
- Reiniciar Hbase
stop-hbase.sh
start-hbase.sh
- Iniciar Phoenix
cd /export/server/phoenix-5.0.0-HBase-2.0-bin/
bin/sqlline.py node1:2181
- prueba
!tables