zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    【转】工作流持久化的几点说明
    转:壹百度-百度十年千倍的29条法则
    CRM软件设计评测点与采集测评点
    键盘上各按键对应的ASSII值
    导入Excle数据至数据库 “外部表不是预期的格式”错误信息
    浅谈代码的执行效率(2):编译器的威力 [摘自赵劼老师的博客]
    代码的执行效率(3)缓存与局部性 摘自赵劼老师的博客
    浅谈代码的执行效率(一)
    C# Base64加解密图片
    Bulk Insert的用法
  • 原文地址:https://www.cnblogs.com/yfb918/p/10643190.html
Copyright © 2011-2022 走看看