日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hbase shell远程连接_hbase与phoenix集成

發布時間:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hbase shell远程连接_hbase与phoenix集成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Phoenix是構建在HBase之上的關系型數據庫層,作為內嵌的客戶端JDBC驅動用以對HBase中的數據進行低延遲訪問

Phoenix會將用戶編寫的sql查詢編譯為一系列的scan操作,最終產生通用的JDBC結果集返回給客戶端

Phoenix可以看成是mysql

準備安裝包

apache-phoenix-4.12.0-HBase-1.2-bin.tar.gz

解壓Phoenix

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

改下名字

mv apache-phoenix-4.12.0-HBase-1.2-bin phoenix-4.12.0

看下目錄結構

將jar拷貝到hbase的lib目錄下

phoenix-4.12.0-HBase-1.2-client.jar

phoenix-core-4.12.0-HBase-1.2.jar

cp phoenix-4.12.0-HBase-1.2-client.jar /opt/bigdata/hbase-1.2.1/lib/

cp phoenix-core-4.12.0-HBase-1.2.jar /opt/bigdata/hbase-1.2.1/lib/

重啟hbase服務,讓配置生效

找到hbase-site.xml文件,將hbase/conf下的hbase-site.xml文件拷貝到Phoenix/bin目錄下覆蓋掉,或者直接修改

??? ??????????????? hbase.tmp.dir??????????????? /opt/bigdata/hbase-1.2.1/data??????? ??????? ??????????????? hbase.rootdir??????????????? hdfs://masterhbase:8082/hbase??????? ???????? ??????????????? hbase.cluster.distributed??????????????? true???????? ???????? ??????????????? hbase.zookeeper.quorum??????????????? masterhbase,masterslave1,masterslave2??????? ???? ??????????????????? zookeeper.znode.parent??????????????? /hbase??????? ??????? ??????????????? hbase.regionserver.wal.codec??????????????? org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec????????

安裝工具

yum -y install python-argparse

啟動Phoenix:指定ZK的地址以及端口號,作為hbase的訪問入口

bin/sqlline.py masterhbase:2181

在HBase中輸入list,會發現多一些表

語句大多數類似mysql語句,但是沒有show database table list都不行 用help幫助信息

!tables 當前phoenix的系統表,hbase中也會有這些表,表示關聯成功一半

創建表

CREATE TABLE user (

id varchar PRIMARY KEY,

name varchar ,

passwd varchar

);

在HBase Shell中可以看到

hbase區分大小寫

Phoenix不區分大小寫,默認情況下都是大寫,變小寫加上雙引號就可以

在hbase的shell中:describe 'USER' 查看

得知默認列族為0,id主鍵字段對應到hbase的ROW字段

phoenix插入數據: updata+insert結合(upsert)更新數據與這個語句是一樣的

upsert into user(id, name, passwd) values('001', 'admin', 'admin');

在HBase Shell中查看

scan 'USER'

phoenix刪除表

drop table user;

phoenix指定列族

CREATE TABLE user (

id varchar PRIMARY KEY,

INFO.name varchar ,

INFO.passwd varchar

);

在hbase shell中查看

phoenix查詢語句:

select * from user;

select name from user where id ='001';

phoenix刪除語句:

delete from user where id='001';

在phoenix的CLI界面中進行簡單的CRUD操作,基本上與RDBMS的操作沒有太大區別。

hbase與phoenix表與表進行關聯

在phoenix中:列的順序可以不一致,表名稱必須一致,以及列名稱一致

在HBase中有一張表

我們在phoenix做映射創建

create table "stu_info_importtsv"(

"ROW" varchar primary key,

"f1"."location" varchar,

"f2"."age" varchar,

"f1"."name" varchar,

"f3"."addr" varchar

);

查看下數據

回到hbase中會發現一些變化,不會影響,可忽略

phoenix數據類型:

char

varchar

decimal

tinyint

smallint

integer

bigint

float

double

timestamp

date

time

binary

varbinary

phoenix導入csv文件數據(批量):

注意:要加載的所有CSV文件都必須具有".csv"文件擴展名

另外phoenix也支持mr做一個批量數據導入

Phoenix創建表

create table if not exists bulkdata (

state char(2) not null,

city varchar not null,

population bigint

constraint my_pk primary key (state, city)

);

準備數據

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 masterhbase /data/phoeniximport.csv 沒有指定表名稱)

bin/psql.py -t BULKDATA masterhbase /data/phoeniximport.csv

查詢數據

如果使用sql文件

執行語句

/opt/bigdata/phoenix-4.12.0/bin/psql.py /data/testphoenix.sql

查看表也是有的

我們看下HBase中

主鍵就是hbase對應的rowkey,為了防止hbase主鍵的唯一性,可以設置多個字段為主鍵

這個表就是多個字段的主鍵

在hbase中添加數據和phoenix添加數據的不同:

添加數據

upsert into bulkdata(state, city, population) values('NY', 'admin', 212313);

查看下

再添加

put 'BULKDATA','41','0:population','2222'

put 'BULKDATA','41','0:city','SHANGHAI'

put 'BULKDATA','41','0:state','tom'

查看下

但是在phoenix中沒有

總結:

首先,這張表是在phoenix中創建

在phoenix中更新數據,hbase也會更新

在hbase中更新數據,phoenix是不會更新的

一些小補充:

1、phoenix JAVA API也可以

phoenix-4.12.0-HBase-1.2-client.jar

phoenix-core-4.12.0-HBase-1.2.jar

添加到項目的classpath中,代碼風格類似JDBC,這個網上很多,不做過多練習。

2、一個第三方工具

使用Squirrel GUI客戶端來連接phoenix

就像MySQL使用Navicat for MySQL,小海豚一樣的連接工具,在進行一些數據庫操作的時候能夠更加的直觀和方便

將下載的jar文件雙擊進行安裝,直接下一步即可

將phoenix-4.12.0-HBase-1.2-client.jar拷貝到squirrel安裝目錄的lib目錄下。

啟動:進入Drivers標簽頁創建新的Driver (加號)

參數說明:

Name:hbasetest(可以填寫其他名稱)

ExampleURL:填寫HBase集群的zookeeper集群的連接信息,這里是jdbc:phoenix:hbasemaster:2181

Website URL:這里不填寫

Java Class Path:選擇phoenix-4.2.2-client.jar(是否選中無所謂,只要在Java Class Path里面就行)

進入Aliases標簽頁創建新的Alias(加號)

參數說明:

Name:hbasemaster(可以填寫其他名稱)

Driver:選擇ibeifeng.class,即上一步創建的Driver

URL:這里就是HBase集群的zookeeper的連接ip和port

User Name:隨便填寫

Password:隨便填寫

在Aliases標簽中雙擊剛剛創建的phoenix打開連接

點擊SQL標簽進入sql命令行界面,輸入語句執行(小人走路的是執行按鈕)

練習語句

create table if not exists mytable (

id integer primary key,

name varchar,

sex varchar,

address varchar

);

upsert into mytable values (1, 'wxb', 'male', '010-22222222');

upsert into mytable values (2, 'll', 'male', '010-11111111');

select * from mytable;

select * from "stu_info"

依然注意大小寫

在SQuirrel中,執行sql語句時,按Ctrl + Enter鍵就可以執行了

總結

以上是生活随笔為你收集整理的hbase shell远程连接_hbase与phoenix集成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。