zoukankan      html  css  js  c++  java
  • 大数据学习之路-phoenix

    1.phoenix安装

    ------------------


    1.安装phoenix

    a)下载apache-phoenix-4.10.0-HBase-1.2-bin.tar.gz   下载网址:https://phoenix.apache.org/download.html

    b)tar 解压压缩包

    c)复制xxx-server.jar到hbase的lib目录,并且分发 ,删除以前的phoenixjar包。

    d)重启hbase

     

    2.使用phoenix的命令行程序

    $>/apps/phoenix-4.14.1-HBase-1.2/bin/sqlline.py master      //启动phoenix

    $phoenix>!tables   //查看表 这里面都是phoexi自己的系统表默认

    $phoenix>!help     //查看帮助


    2.SQL Client安装 phoenix图形化界面

    a)下载squirrel-sql-3.7.1-standard.jar      下载链接:http://squirrel-sql.sourceforge.net/

    该文件是安装文件,执行的安装程序。

    $>jar -jar squirrel-sql-3.7.1-standard.jar

    $>下一步...

    b)复制phoenix-4.10.0-HBase-1.2-client.jar到SQuerrel安装目录的lib下(c:myprogramssquirrel)。

    c)启动SQuirrel(GUI)

    定位安装目录->执行squirrel-sql.bat

    d)打开GUI界面

    d)在左侧的边栏选中"Drivers"选项卡,

    点击 "+" ->

    Name: clc
    ExampleURL : jdbc:phoenix:192.168.231.202
    Driverclass : org.apache.phoenix.jdbc.PhoenixDriver

    d)测试。

    3.SQLLine客户端操作

    //建表

    $jdbc:phoenix>create table IF NOT EXISTS test.Person (IDCardNum INTEGER not null primary key, Name varchar(20),Age INTEGER);

    //插入数据 插入和更新的SQL关键字都是upsert

    $jdbc:phoenix>UPSERT INTO test.PERSON(IDCardNum , Name,Age) VALUES (1,'tom',12);

    //删除数据

    $jdbc:phoenix>delete from test.persion where idcardnum = 1 ;

    //更新数据

    $upsert into test.PERSON(IDCardNum , Name,Age) VALUES (1,'tom',12);

    2.注意

    2.1

    Phoenix 无法自动识别 HBase 中原有的表,所以需要将 HBase 中已有的做映射,才能够被 Phoenix 识别并操作。说白了就是要需要告诉 Phoenix 一声 xx 表的 xx 列是主键,xx 列的数据类型。

    2.2

    如果你使用的是 Phoenix 4.10 及以上的版本,映射表过后可能会遇到查不出数据的情况 

    CREATE TABLE "test_table" ( "ROW" varchar primary key, "0"."name" varchar) column_encoded_bytes=0;

    解决办法:https://blog.csdn.net/Colton_Null/article/details/83387995

    2.3

    我们在Phoeix中建立的表都默认建立在HBase default名字空间中的

    2.4

    Phoenix查询报错总结以及解决办法

    https://www.jianshu.com/p/a3c24638b498

     3.二级索引

    https://www.cnblogs.com/haoxinyue/p/6724365.html

    4.在Java项目中集成Phoenix


    4.1在Java项目中实现Phoenix操作Hbase,maven引入Phoenix的依赖包:

    <dependency>
    <groupId>org.apache.phoenix</groupId>
    <artifactId>phoenix-core</artifactId>
    <version>4.9.0-HBase-1.1</version>
    </dependency>


    4.2但是引入这个包是不够的,还需要另外引入一个依赖包phoenix-4.9.0-HBase-1.1-client.jar,这个依赖包可以在Phoenix文件中找到,也可以通过下载Phoenix源码,自行编译后导入,自此就可以通过java的JDBC访问操作Hbase。
    java测试的源码如下:

    public static void main(String args[]) {
    Connection connection = null;
    Statement statement = null;
    try {
    Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
    connection = DriverManager.getConnection("jdbc:phoenix:master:2181","","");
    statement = connection.createStatement();
    statement.execute("upsert into yinxiang_note values (3, 'note of huhong')");
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    connection.close();
    statement.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

    5.好的博文推荐

    5.1浅谈Phoeix在HBase中的应用以及讲解了性能测试,主要是将Phoenix和Hive、Impala作一个对比

        https://www.cnblogs.com/ballwql/p/8371234.html

    5.2从入门到精通 

     https://www.jianshu.com/p/91decdd7fc5d

    5.3 Hbase导入数据同时与phoenix实现同步映射 

    http://blog.sina.com.cn/s/blog_628cc2b70102x5lq.html

     5.4图文讲解  

     https://www.cnblogs.com/xirongliu/p/4603246.html

  • 相关阅读:
    基于 mysql 异步驱动的非阻塞 Mybatis【待验证】
    Hive SQL优化方式及使用技巧
    使用Guava-RateLimiter限流控制qps
    hive 时间戳函数之unix_timestamp,from_unixtime
    Hive实现自增列的两种方法
    shell 下 urlencode/urldecode 编码/解码的方法
    awk使用shell变量,shell获取awk中的变量值
    shell脚本删除远程过期文件
    linux下多进程同时操作文件
    hive学习----Hive表的创建
  • 原文地址:https://www.cnblogs.com/ggnbnb/p/9968705.html
Copyright © 2011-2022 走看看