cdh中線上安裝及使用Phoenix
阿新 • • 發佈:2018-11-15
1.1: 下載CDH 需要parcel包
下載地址:
http://archive.cloudera.com/cloudera-labs/phoenix/parcels/latest/
CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel
CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel.sha1
manifest.json
.線上安裝
在CDH5.14.2 上面 配置 phoenix
點選parcel,然後點配置,新增parcel的網址,然後點選更新 http://archive.cloudera.com/cloudera-labs/phoenix/parcels/latest/
1.3 在CDH5.14.2 上面 配置 phoenix
1.4 HBase服務需要部署客戶端配置以及重啟
1.5 phoeinx的連線操作
cd /opt/cloudera/parcels/CLABS_PHOENIX/bin
使用Phoenix登入HBase
./phoenix-sqlline.py
需要指定Zookeeper ./phoenix-sqlline.py node-01.flyfish:2181:/hbase !table
二:Phoenix的基本操作
2.1 使用phoinex建立表
create table hbase_test
(
s1 varchar not null primary key,
s2 varchar,
s3 varchar,
s4 varchar
);
hbase 的介面登入
hbase shell
upsert into hbase_test values('1','testname','testname1','testname2'); upsert into hbase_test values('2','tom','jack','harry');
刪除:
delete from hbase_test where s1='1'; (刪除是按rowkey)
upsert into hbase_test values('1','hadoop','hive','zookeeper');
upsert into hbase_test values('2','oozie','hue','spark');
更新資料測試,注意Phoenix中沒有update語法,用upsert代替。插入多條資料需要執行多條upsert語句,沒辦法將所有的資料都寫到一個“values”後面。
upsert into hbase_test values('1','zhangyy','hive','zookeeper');
三:使用Phoenix bulkload資料到HBase
3.1 準備測試檔案
準備 匯入的 測試檔案
ls -ld ithbase.csv
head -n 1 ithbase.csv
上傳到hdfs
su - hdfs
hdfs dfs -mkdir /flyfish
hdfs dfs -put ithbase.csv /flyfish
hdfs dfs -ls /flyfish
3.2 通過Phoenix建立表
create table ithbase
(
i_item_sk varchar not null primary key,
i_item_id varchar,
i_rec_start_varchar varchar,
i_rec_end_date varchar
);
執行bulkload命令匯入資料
HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH/lib/hbase/hbase-protocol-1.2.0-cdh5.12.1.jar:/opt/cloudera/parcels/CDH/lib/hbase/conf hadoop jar /opt/cloudera/parcels/CLABS_PHOENIX/lib/phoenix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -t ithbase -i /flyfish/ithbase.csv
select * from ithbase
四:使用Phoenix從HBase中匯出資料到HDFS
cat export.pig
----
REGISTER /opt/cloudera/parcels/CLABS_PHOENIX/lib/phoenix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar;
rows = load 'hbase://query/SELECT * FROM ITHBASE' USING org.apache.phoenix.pig.PhoenixHBaseLoader('node-01.flyfish:2181');
STORE rows INTO 'flyfish1' USING PigStorage(',');
----
執行pig
pig -x mapreduce export.pig
在hdfs 上面檢視檔案
hdfs dfs -ls /user/hdfs/flyfish1
hdfs dfs -cat /user/hdfs/flyfish1/part-m-00000