zoukankan      html  css  js  c++  java
  • phoenix操作HBase

    phoenix操作HBase

    一、Phoenix简介

      Phoenix,由saleforce.com 开源的一个项目,后又捐给了Apache。
      它相当于一个Java 中间件,帮助开发者,像使用jdbc 访问关系型数据库一样,访问NoSql 数据库HBase。
      Apache Phoenix 与其他Hadoop 产品完全集成,如Spark,Hive,Pig,Flume 和MapReduce。

    二、安装pheonix

    2.1 下载pheonix

      http://phoenix.apache.org/download.html
      注意:下载Phoenix 的时候,请注意对应的版本,其中4.14 版本可以运行在HBase0.98、1.1、1.2、1.3、1.4 上。  

    下载时也可以直接使用:
    wget http://mirrors.shu.edu.cn/apache/phoenix/apache-phoenix-4.14.0-HBase-1.2/bin/apache-phoenix-4.14.0-HBase-1.2-bin.tar.gz

    2.2 解压pheonix

    tar -zxvf apache-phoenix-4.14.0-HBase-1.2-bin.tar.gz

       

    2.3 整合phoenix到hbase

      查看Phoenix下的所有的文件,将phoenix-4.14.0-HBase-1.2-server.jar 拷贝到所有HBase节点(包括Hmaster以及HregionServer)的lib目录下:

      重启HBase:
      bin/stop-hbase.sh
      bin/start-hbase.sh

    2.4 使用phoenix SQL命令行

    进入Phoenix 的安装包,执行:

    bin/sqlline.py bigdata1:2181

    2.4.1 创建表

    在Phoenix 终端下创建us_population 表:

    >> CREATE TABLE IF NOT EXISTS us_population (
    state CHAR(2) NOT NULL,
    city VARCHAR NOT NULL,
    population BIGINT
    CONSTRAINT my_pk PRIMARY KEY (state, city));

    使用!tables 查看创建的表:

    >> !tables

    2.4.2 编辑并导入数据

     在Phoenix 目录下创建一个data 目录,在data 目录下创建:

    vi us_population.csv

    NY,New York,8143197
    CA,Los Angeles,3844829
    IL,Chicago,2842518
    TX,Houston,2016582
    PA,Philadelphia,1463281
    AZ,Phoenix,1461575
    TX,San Antonio,1256509
    CA,San Diego,1255540
    TX,Dallas,1213825
    CA,San Jose,912332
    执行bin/psql.py data/us_population.csv 导入数据。

    # 除了导入数据外,还可以使用Phoenix 的语法插入数据:upsert into us_population values('NY','NewYork',8143197);

    1.4.3 查询数据

     方式一:在data 目录下创建us_population_queries.sql 文件:

    SELECT state as "State",count(city) as "City Count",sum(population) as "Population Sum"
    FROM us_population
    GROUP BY state
    ORDER BY sum(population) DESC;
    执行bin/psql.py data/us_population_queries.sql 检索数据。

    方式二:使用命令行终端

    bin/sqlline.py bigdata1:2181
    >> select * from us_populcation;

     三、Squirrel-sql 连接Phoenix

    3.1 下载Squirrel-sql

      http://www.squirrelsql.org/#installation

    3.2 设置Squirrel-sql 连接Phoenix

      拷贝Phoenix Client jar【phoenix-4.14.0-HBase-1.2-client.jar】到Squirrel-sql 的lib 目录;

      

     设置Phoenix 连接的Driver 信息,其中localhost 为zookeeper 所在的主机地址,填写一个即可。

     

     

     四、Phoenix 映射Hbase 表

    进入Hbase 命令行终端bin/hbase shell
    创建Hbase 表'phoenix':

    -- 创建Hbase 表Phoenix,列族info

    create 'phoenix','info'

    -- 添加数据

    put 'phoenix', 'row001','info:name','phoenix'
    put 'phoenix', 'row002','info:name','hbase'

    映射HBase 表的方式有两种,一直是视图映射,一种是表映射。
    两者的区别就是对HBase 的物理表有没有影响;
    删除Phoenix 视图映射不会对Hbase 的表造成影响;
    删除Phoenix 表映射会将Hbase 的表也删除;
    非必要情况下一般创建视图映射。

    4.1 视图映射

     在Phoenix 下创建视图映射HBase 表: 

    -- 创建视图关联映射Hbase 表
    create view "phoenix" (
    pk VARCHAR primary key,
    "info"."name" VARCHAR
    );

    查询创建好的Phoenix 视图:

     -- 删除视图后,在hbase shell 终端下查看phoenix 依然存在

    drop view "phoenix";

    4.2 表映射

    在Phoenix 下创建表映射HBase 表:
    -- 创建表关联映射Hbase 表,4.10 以后Phoenix 优化了列映射,COLUMN_ENCODED_BYTES=0 禁用列映射。

    create table "phoenix" (
    pk VARCHAR primary key,
    "info"."name" VARCHAR
    ) COLUMN_ENCODED_BYTES = 0;

    查询数据:

     
    做自己的太阳,成为别人的光!
  • 相关阅读:
    代码收藏系列--jquery--筛选器、事件绑定技巧
    代码收藏系列--javascript--日期函数
    代码收藏系列--javascript--移动端技巧
    DotNet,PHP,Java的数据库连接代码大全(带演示代码)
    DDoS攻击、CC攻击的攻击方式和防御方法
    CDN公共库、前端开发常用插件一览表(VendorPluginLib)
    使用Ajax内容签名,减少流量浪费
    程序开发常用第三方类库一览表(VendorLib)
    检查对象是否存在
    Python安装
  • 原文地址:https://www.cnblogs.com/botaoli/p/15002601.html
Copyright © 2011-2022 走看看