• HBase-15-Phoenix


    ◆构建在ApacheHBase之上的一个SQL中间层

    可以在ApacheHBase上执行SQL查询,性能强劲

    较完善的查询支持,支持二级索引,查询效率较高

    ·简介:·优势:
    Put the SQL backin NoSQL,程序员熟知SQL语句

    ◆具有完整ACID事务功能的标准SQL和IDBCAPI的强大功能

    ◆完全可以和其他Hadoop产品例如SparkHivePig、Flume以及
    MapReduce集成

    图中展示了,通过phoenix和hive对基于HDFS和HBase的数据记性查询的时候,随着数据量的增长,查询时间的变化曲线

     

    • phoenix的性能是如何提高的?

    通过HBase协处理器,在服务端进行操作,从而最大限度的减少客
    户端和服务器的数据传输
    通过定制的过滤器对数据进行处理

    ◆使用本地的HBaseApi而不是通过MapReduce框架,这样能最大限
    度的降低启动成本

    • Phoenix特性

      • 多租户

      • 二级索引

      • 用户定义函数(分临时函数和永久函数)

      • 行时间戳列

      • 分页查询

      • 视图

    Phoenix安装

    下载对应版本的安装包

    配置与现有HBase集群集成

    重新启动HBase环境,并测试环境是否可以正常使用

    1:tar zxf apache-phoenix-4.13.1-HBase-1.2-bin.tar.gz

    2:cd apache-phoenix-4.13.1-HBase-1.2-bin

        cp phoenix-core-4.13.1-HBase-1.2.jar ../hbase-1.2.4/lib/

        cp phoenix-4.13.1-HBase-1.2-server.jar ../hbase-1.2.4/lib/

    3:cd bin

        ./sqlline.py

    1. [root@test bin]# ./sqlline.py
    2. Setting property: [incremental, false]
    3. Setting property: [isolation, TRANSACTION_READ_COMMITTED]
    4. issuing: !connect jdbc:phoenix:localhost:2181:/hbase none none org.apache.phoenix.jdbc.PhoenixDriver
    5. Connecting to jdbc:phoenix:localhost:2181:/hbase
    6. 21/05/11 21:38:14 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    7. Connected to: Phoenix (version 4.13)
    8. Driver: PhoenixEmbeddedDriver (version 4.13)
    9. Autocommit status: true
    10. Transaction isolation: TRANSACTION_READ_COMMITTED
    11. Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
    12. 92/92 (100%) Done
    13. Done
    14. sqlline version 1.2.0
    15. 0: jdbc:phoenix:localhost:2181:/hbase> help
    • 通过shell操作phoenix

    • 通过java jdbc操作phoenix

    1. <dependency>
    2. <groupId>org.apache.phoenix</groupId>
    3. <artifactId>phoenix-core</artifactId>
    4. <version>4.13.1-hbase-1.2</version>
    5. </dependency>
    1. public static void main(String[] args) throws Exception{
    2. Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
    3. Connection connection = DriverManager.getConnection("jdbc:phoenix:10.0.0.174:2181");
    4. PreparedStatement preparedStatement = connection.prepareStatement("select * from person");
    5. ResultSet resultSet = preparedStatement.executeQuery();
    6. while (resultSet.next()){
    7. System.out.println(resultSet.getString("NAME"));
    8. }
    9. preparedStatement.close();
    10. connection.close();
    11. }

  • 相关阅读:
    1、Spring IOC的理解要点
    华为机试真题 Java 实现【出错的或电路】
    MySQL主主复制
    中国玻璃行业市场深度分析及发展前景预测研究报告
    cnpm安装和使用
    缓存面试解析:穿透、击穿、雪崩,一致性、分布式锁、Redis过期,海量数据查找
    次世代3D建模的制作流程与制作时间,一个模型就上万,钱真不好拿
    02 重学js-原型链,this指向及改变this指向
    【中国大学生计算机大赛二等奖】智能中医-中e诊简介(一)
    软件项目管理==风险计划
  • 原文地址:https://blog.csdn.net/daliyuan350649623/article/details/126711775