1.首先根据自己安装的hbase的版本号下载相应版本的phoenix安装包;
下载地址: 下载地址:http://mirror.bit.edu.cn/apache/phoenix/
我下载的是apache-phoenix-4.8.0-Hbase-1.0
2.移动到相应的目录,进行解压操作
sudo mv apache-phoenix-4.8.0-Hbase-1.0.tar.gz /usr/local/
sudo tar -zxvf apache-phoenix-4.8.0-Hbase-1.0.tar.gz phoenix
3.配置
把配置好的habse-site.xml/hdfs-sit.xml复制到phoenix/bin的目录下,把phoenix/目录下的phoenix-core-4.8.0-HBase-1.0.jar, phoenix-4.8.0-HBase-1.0-server.jar复制到hbase
/lib目录下
重启hbase
然后在phoenix的bin目录下,用命令./sqlline.py maste:2181或者./sqlline.py localhost 或者./sqlline.py IP:2181启动phoenix
我的第一次启动时报错:
Caused by: java.net.SocketTimeoutException: callTimeout=60000, callDuration=68358: row 'SYSTEM:CATAL
网上找了很久,都是只有问题没有解决方案,不仅感叹一个人学习前言的东西太难,选导师的时候绝对不能只看导师的研究方向
新不新前沿不前沿,一定还要看他带的学生的研究成果怎么样,因为好多老师的课题方向就是一个幌子,把你坑进去根本就不交给你什么东西
,实际上他(她)自己都不会,也从不做相关的课题。有没有人带你,最后要死的还是你自己。
回归正题:后面发现要只要更改hbase中hbase-site.xml中的hbase.rpc.timeout的值即可,改成了36000 0000,我的里面没有这个项,然后就是自己添加的
具体原因说是:超过了HBase的客户端应用程序可以远程调用的时间60秒。可以在hbase.rpc.timeout中增加这个值的设定值。
然后重启hbase,启动phoenix,结果如下:
调用help命令:
查看数据库中的所有数据表!tables
创建新表:
查询,图中HQU是上面新建的表,其他四个表是phoenix自带的表
http://blog.csdn.net/silentwolfyh/article/details/51992538
http://xn--jlq582ax31c.xn--fiqs8s/post/27(java代码调用phoenix)
插入数据,用的insert into table....直接报错,找了很多没找到解决方案,但是发现有人直接用upsert into table命令,试了一下,成功!
查询HQU表:select * from HQU ;
注意插入的时候,注意主键,主键一样插入时前面的一条信息会被后面的一条信息所覆盖,查询结果如上面的所示。
并没有像hbase那样自动保留信息的两个副本。
再次插入
upsert into HQU values(1,'Hello');
upsert into HQU values(2,'World');
查询结果如下:
参考网页:https://phoenix.apache.org/faq.html#I_want_to_get_started_Is_there_a_Phoenix_Hello_World
此时查询hbase数据库,情况如下,多了一个HQU表,表中存在刚刚插入的数据: