• Phoneix(二)HBase集成Phoenix安装


    一、软件下载

    1、访问:http://phoenix.apache.org/

    2、点击:

    3、进入以下内容:点击

    4、跳转到

    5、跳转到

    6、点击安装包,进入

    点击进行下载:

    二、安装

    phonenix主要是与hbase进行集成,也可以称之为hbase sql的框架。

     进入到phonenix的解压文件夹中,将phoenix-core-4.13.1-HBase-1.2server.jar

    复制到hbase中的lib目录下。重启hbase

    三、使用客户端

    下载http://squirrel-sql.sourceforge.net/

    点击出现以下界面:

    下载之后在

    进入到当前目录。运行java –jar squirrel-sql-3.8.0-standard.jar

    进入下一步:

    进入到安装目录:

    四、客户端集成Hbase

    1、  将phoenix的client包复制到工具的lib目录

    2、让工具可以加载我们的phoneix的连接,加入驱动

    操作:

    点击创建与hbase的连接:

    创建一张表:

    五、可能会遇到的问题

    1、  无法看到之前已经创建的表

            创建一张与hbase同名的表,或者直接创建一张视图表

    2、  phoenix创建的表,手动put之后,查询不到数据

            因为phoenix与java创建表之后,phoenix创建的表名不全大写,就算sql中写的小写也是一样会转成大写

    3、  如果解决创建表时表名为大写

      如果之前已经有一个小写的表名,如何解决关联问题?

        注意:表名一定要加双引号,不然会将语句自动转为全大写的。

    4、  单引号与双引号的区分

    4.1:当值上面加上双引号会查询不到你想要的结果

            目前创建的表可以在hbase中查看

                 1、当我们通过工具创建一张表之后,无法知道该表的列族。但是要使用put的时候,又需要指定列族名?

                     可以通过界面或者是desc命令的方式查看,默认创建的列族名为"0"

                 2、当在hbase shell中put了相应的数据之后,但是在工具里面没有看到相应的数据?

                     可以发现hbase中的列名字是要区分大小写。?????

                 3、当hbase中已经有表,但是在工具里面是看不到该表的? 

                     解决办法,创建一张同名的表

                     当然后工具创建表的时候,会将表名全部改为大写。

                     如果hbase中的表所有的字母全是大写的话,工具在创建的时候会自动关联。

                     如果hbase中是有非字母全大写的话,可以在工具中创建时为表名写上【双引号】

                 4、数据关联

                       如果是先在hbaes中创建的表,在到工具中去创建的时候,需要为字段加上列族名

                                           create table "java_table3"(

                                             "pkid" varchar(512) primary key,

                                             "cf01"."name" varchar(512)

                                           )

                          如果是通过工具直接创建的话,也需要加上列族名,不然会用0来作为列族,但是数据关联不上。

          只能操作结构化的数据,在结构化之外的字段是查询不了的

    六、java操作

    <dependency>
        <groupId>org.apache.phoenix</groupId>
        <artifactId>phoenix-core</artifactId>
         <version>4.13.1-HBase-1.2</version>
     </dependency>
     
            Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
            String url = "jdbc:phoenix:master,slave01,slave02";
            Connection conn = DriverManager.getConnection(url);
            PreparedStatement preparedStatement = conn.prepareStatement("select * from "java_table2"");
            ResultSet resultSet = preparedStatement.executeQuery();
            while(resultSet.next()){
                System.out.println(resultSet.getString(1));
            }
            resultSet.close();
            preparedStatement.close();
            conn.close();
  • 相关阅读:
    (CVE-2020-1938)Apache Tomcat AJP文件包含漏洞复现
    Linux rm 反向删除/排除制定文件(夹)
    Linux下JDK安装及配置 (tar.gz版)
    Linux内核源码分析 -- 同步原语 -- 互斥锁 mutex(未完成)
    Linux内核源码分析 -- 同步原语 -- 自旋锁 spinlock
    Linux内核源码分析 -- 同步原语 -- 信号量 semaphore
    Linux 内核源码分析 -- getuid, geteuid
    Linux 内核源码分析 -- chroot
    手动模拟 Linux 内核 mmu 内存寻址
    glibc-free-_int_free
  • 原文地址:https://www.cnblogs.com/yfb918/p/10643190.html
Copyright © 2020-2023  润新知