Phoenix安装配置

Phoenix安装配置

1.简介

Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目

Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表、插入数据和对HBase数据进行查询

因此Phoenix跟HBase是离不开的,Phoenix的安装也是基于HBase的。在安装Phoenix之前,请确保集群上已经安装了Hadoop集群跟HBase集群

本集群上已部署CHD5.5.1版本的Hadooop(2.6.0)和HBase(1.0.0)

各节点规划如下:

192.168.20.100 node-20-100 hdfs-master1 nn1     jn1 hmaster1
192.168.20.101 node-20-101 hdfs-master2 nn2 zk1 jn2 hmaster2        Phoenix
192.168.20.102 node-20-102 hdfs-slave1  dn1 zk2 jn3 hregionserver1
192.168.20.103 node-20-103 hdfs-slave2  dn2 zk3 jn4 hregionserver2
192.168.20.104 node-20-104 hdfs-slave3  dn3 zk4 jn5 hregionserver3
192.168.20.105 node-20-105 hdfs-slave4  dn4 zk5     hregionserver4

注意:Cloudera官方并不支持Phoenix,也就是说从Phoenix官网下的预编译的包在CDH安装的HBase上根本不能运行,Phoenix官网对此也没有任何说明!!!刚开始按照Phoenix官网给出的步骤安装完Phoenix后运行报错,幸好有StackOverflow,才找到了原因,并且找到解决方案。链接如下:
http://stackoverflow.com/questions/31849454/using-phoenix-with-cloudera-hbase-installed-from-repo

解决方案:
需要自己从Phoenix官网下载跟HBase版本对应的Phoenix版本(Phoenix 4.x版本均支持HBase 1.0.0)的源码来编译,得到编译后的两个相关jar包。具体安装步骤如下

2.安装配置

Phoenix最新版本是4.8,4.x均支持HBase 1.0.0,这里选用Phoenix 4.6.0版本

2.1下载并解压

从Phoenix官网下载预编译的phoenix-4.6.0-HBase-1.0-bin.tar.gz

Phoenix客户端所在的节点最好安装有ZooKeeper,方便后续操作

这里选择192.168.20.101节点作为Phoenix客户端

  • 切换到/opt目录下:$ cd /opt
  • wget:$ wget 'http://archive.apache.org/dist/phoenix/phoenix-4.6.0-HBase-1.0/bin/phoenix-4.6.0-HBase-1.0-bin.tar.gz'
  • 解压:$ tar -xzvf phoenix-4.6.0-HBase-1.0-bin.tar.gz
  • 建立软链接:$ ln -s phoenix-4.6.0-HBase-1.0-bin phoenix

2.2编译源码

如果从Phoenix官网下载4.6.0的源码来编译,需要自己修改pom.xml文件,比较麻烦。Github上已经有人把修改过pom.xml文件的源码上传了,链接如下:
https://github.com/chiastic-security/phoenix-for-cloudera/tree/4.6-HBase-1.0-cdh5.5

下载该链接的源码,用maven进行编译

  • 进入phoenix-for-cloudera-4.6-HBase-1.0-cdh5.5目录
  • $ mvn package -DskipTests

编译成功后显示如下:

compile succeed

2.3替换

将编译后``phoenix-for-cloudera-4.6-HBase-1.0-cdh5.5/phoenix-assembly/target目录下的phoenix-4.6.0-cdh5.5.1-client.jarphoenix-4.6.0-cdh5.5.1-server.jar分别替换/opt/phoenix目录下的phoenix-4.6.0-HBase-1.0-client.jarphoenix-4.6.0-HBase-1.0-server.jar`

2.4将相关jar拷贝到HBase的lib目录下

拷贝phoenix-4.6.0-cdh5.5.1-server.jar到集群上每个HBase的lib目录下

$ cp phoenix-4.6.0-cdh5.5.1-server.jar /usr/lib/hbase/lib
$ scp phoenix-4.6.0-cdh5.5.1-server.jar node-20-100:/usr/lib/hbase/lib/phoenix-4.6.0-cdh5.5.1-server.jar
$ scp phoenix-4.6.0-cdh5.5.1-server.jar node-20-102:/usr/lib/hbase/lib/phoenix-4.6.0-cdh5.5.1-server.jar
$ scp phoenix-4.6.0-cdh5.5.1-server.jar node-20-103:/usr/lib/hbase/lib/phoenix-4.6.0-cdh5.5.1-server.jar
$ scp phoenix-4.6.0-cdh5.5.1-server.jar node-20-104:/usr/lib/hbase/lib/phoenix-4.6.0-cdh5.5.1-server.jar
$ scp phoenix-4.6.0-cdh5.5.1-server.jar node-20-105:/usr/lib/hbase/lib/phoenix-4.6.0-cdh5.5.1-server.jar

2.5配置Phoenix客户端的CLASSPATH

phoenix-4.6.0-cdh5.5.1-client.jar添加到Phoenix客户端的CLASSPATH中,这里是192.168.20.101节点

在/etc/profile.d目录下新建phoenix.sh

export CLASSPATH=.:/opt/phoenix/phoenix-4.6.0-cdh5.5.1-client.jar
$ source phoenix.sh

2.6配置hbase-site.xml

  • Master的hbase-site.xml
<property>
  <name>hbase.regionserver.wal.codec</name>
  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>

<property>
  <name>hbase.master.loadbalancer.class</name>
<value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value>
</property>
<property>
   <name>hbase.coprocessor.master.classes</name>
  <value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value>
</property>
<property>
   <name>hbase.rpc.timeout</name>
  <value>300000</value>
</property>
  • Region Server的hbase-site.xml
<property>
  <name>hbase.regionserver.wal.codec</name>
  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>

<property>
<name>hbase.region.server.rpc.scheduler.factory.class</name> 
<value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that usesseparate queues for index and metadata updates</description>
</property>
<property>
 <name>hbase.rpc.controllerfactory.class</name>
<value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
<description>Factory to create the Phoenix RPCScheduler that uses separate queues for index and metadataupdates</description>
</property>
 
<property>
<name>hbase.coprocessor.regionserver.classes</name>
<value>org.apache.hadoop.hbase.regionserver.LocalIndexMerger</value>
</property>
<property>
   <name>hbase.rpc.timeout</name>
  <value>300000</value>
</property>

至此,Phoenix安装配置完毕

3.验证是否可用

3.1进入CLI

切换到/opt/phoenix/bin目录下

$ chmod 777 sqlline.py
$ chmod 777 psql.py

运行

$ ./sqlline.py localhost

结果如下:

install success

说明Phoenix安装成功

3.2在终端执行SQL脚本

运行

$ ./sqlline.py localhost ../examples/STOCK_SYMBOL.sql

报错:

null.png

解决:

examples/STOCK_SYMBOL.sql里第一行-- creates stock table with single row删掉

重新运行:

null.png

3.3加载数据

运行:

$ psql.py localhost ../examples/web_stat.sql ../examples/web_stat.csv ../examples/web_stat_queries.sql

结果:

result
FullStackPlan

欢迎关注公众号: FullStackPlan 获取更多干货哦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容