学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

参考文档 https://www.cnblogs.com/zlslch/p/7096402.html


集群节点 三个mini1,mini2,mini3
1,下载
phoenix for CDH下载位置,我下载的是目前phoenix对应的cdh最高版本5.9,但是我用的是CDH最高版本5.13(目前最高版本。测试5.13,生产上用的是CDH5.11)
https://github.com/chiastic-security/phoenix-for-cloudera/tree/4.9-HBase-1.2-cdh5.9
 

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 2,编译phoenix for CDH5.9源码包
用maven,电脑上装个maven,我是3.3.9版本的maven。不要太在意装哪个版本的maven感觉都能编译。(maven怎么装百度一大把)
然后开始菜单进入cmd,进行编译
进入你存放phoenix源码的路径,我是放在G:\Phoenix\phoenix-for-cloudera-4.9-HBase-1.2-cdh5.9
 

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 

直接执行编译命令:

mvn clean package -DskipTests

(注意:变过程会很慢,很慢,很慢.........并且过程会报错编译失败,那就多编译几次。。。我是经过N次编译。。。让人崩溃)

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 出现 如上图,恭喜你编译成功啦!!!!!!!!!!!!!!!!!

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 

打好包后一般都在target文件夹下。

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 

3.将phoenix-4.9.0-cdh5.9.1.tar.gz,上传cdh的hbase集群,解压tar包,tar包我放在/home/phoenix目录下:解压

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

将phoenix-4.9.0-cdh5.9.1-server.jar包拷贝到每一个节点的RegionServer下
RegionServer的路径看你怎么装CDH了。但是一般默认都在
/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hbase/lib,路径下
(主要查这个目录:/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hbase/lib)
每一个节点都要!
 

CDH修改方法:
增加hbase-site.xml 配置
<property><name>hbase.table.sanity.checks</name><value>false</value></property>
 添加方式如下:
在集群管理页面点击Hbase,进入Hbase管理界面
 

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 重启Hbase  

    这个很简单,不多说,会玩cloudermanager的人都知道。

 

登录phoenix

  进入phoenix-4.8.0-cdh5.8.0/bin目录执行。

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 

进入phoenix,(mini1:2181,不是zk的leader节点,而是当前节点的)

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

select * from "device_report" limit 10;可以查询了。。。。

 

我在hbase中先建好表:score,列簇是a,插入3个数据,如下

 

学习hadoop遇到的问题(phoenix for cdh5.9 搭建以及注意点)

 

device_report,score这连个表我已经和hbase进行映射完了,映射方式是:
create table "score"(NAME archar primary key, "a"."age" varchar,"a"."sex" varchar); 
注意:表名score,必须要加双引号!列簇和列名也是一样加双引号!
注意的问题:
phoenix 是大小写很敏感的,hbase在建表时,表名小写用引号还能查,字段小写绝对不支持条件,所以在hbase建表时,强烈建议,表名,列簇,rowkey,列名都大写,就可以和phoenix衔接了。
不知道为什么在查询的过程的中,只要带有where 字段的查询,就报列和列名找不到
列:试了很多中形式如下
select * from "score" where "age"="16";
select * from "score" where "a"."age"="16";
select * from "score" where "a.age"="16";
select * from "score" where "a:age"="16";
 select * from "score" where age=16;
 select * from "score" a where a.age=16;
 select * from "score" a where a.age="16";