关于Apache Phoenix和Cloudera结合
1. 安装:
phoenix的官网最新版4.13.2是有parcle版本的,并不需要从cloudera的labs(实验室)中下载。
安装完成后,可以运行一下phoenix的shell来简单验证一下:/opt/cloudera/parcels/APACHE_PHOENIX/bin
2. 在实际的应用中:
Caused by: java.lang.ClassNotFoundException: org.apache.http.config.Lookup
添加了httpcore的jar的最新版本的引用;
NoClassDefFoundError: org/apache/http/protocol/HttpContext
发现不能使用最新版本(4.4.9),需要使用4.4版本,问题解决
java.net.SocketTimeoutException: callTimeout=60000, callDuration=68229: row 'SYSTEM:CATALOG,,' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=slave3,60020,1517911366463, seqNum=0
重启了Zookeeper和HBase问题解决
Exception in thread "main" java.sql.SQLException: ERROR 2006 (INT08): Incompatible jars detected between client and server. Ensure that phoenix.jar is put on the classpath of HBase in every region server: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.hbase.zookeeper.MetaTableLocator
这个问题没有解决,网调原因是调用端的guava的版本和服务器的版本不一致;但是我尝试了几个版本的guava都没有成功;于是切换到了高版本的phoenix,使用thin-client来进行处理。thin-client非常小,几百K,但是如果想要用原生的jdbc客户端,你需要引用整个phoenix包,100M;thin-client的引用可能就是这个原因吧。但是想要使用thin-client需要启动thin-server。
3. 关于使用thin-client:
步骤如下:
第一步要启动thin-server,可以通过lsof -i:8765来判断是否启动成功(不过queryserver的路径比较深:/opt/cloudera/parcels/APACHE_PHOENIX/lib/phoenix/bin);
./queryserver.py start
注意,如果重复启动,将会碰到Address已经被占用的异常;
第二步,设置maven引用:
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-queryserver-client</artifactId>
<version>4.13.2-cdh5.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4</version>
</dependency>
第三步jdbc代码实现访问:
String testSQL = "select * from HBASE_TEST";
try {
Class.forName("org.apache.phoenix.queryserver.client.Driver");
} catch (ClassNotFoundException e1) {
System.out.println("org.apache.phoenix.queryserver.client.Driver未找到");
}
List<String> resList = new ArrayList<String>();
Connection con1 = DriverManager
.getConnection("jdbc:phoenix:thin:url=http://10.1.108.65:8765;serialization=PROTOBUF", "", "");
Statement stmt = con1.createStatement();
ResultSet rset = stmt.executeQuery(testSQL);
while (rset.next()) {
String msg = String.format("S1:%s; S2:%s; S3:%s; S4:%s", rset.getString("S1"), rset.getString("S2"),
rset.getString("S3"), rset.getString("S4"));
System.out.println(msg);
} stmt.close();
con1.close();
关于Apache Phoenix和Cloudera结合的更多相关文章
- Apache Phoenix on CDH 5
We are happy to announce the inclusion of Apache Phoenix in Cloudera Labs. [Update: A new package fo ...
- [saiku] 使用 Apache Phoenix and HBase 结合 saiku 做大数据查询分析
saiku不仅可以对传统的RDBMS里面的数据做OLAP分析,还可以对Nosql数据库如Hbase做统计分析. 本文简单介绍下一个使用saiku去查询分析hbase数据的例子. 1.phoenix和h ...
- Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成
介绍:Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排运行以生成标准的JDBC结果集. 直接使用HBase API.协同处理器与自己定义过滤器.对于简单查询来说,其性能 ...
- phoenix 报错:type org.apache.phoenix.schema.types.PhoenixArray is not supported
今天用phoenix报如下错误: 主要原因: hbase的表中某字段类型是array,phoenix目前不支持此类型 解决方法: 复制替换phoenix包的cursor文件 # Copyright 2 ...
- Mapreduce atop Apache Phoenix (ScanPlan 初探)
利用Mapreduce/hive查询Phoenix数据时如何划分partition? PhoenixInputFormat的源码一看便知: public List<InputSplit> ...
- org.apache.phoenix.exception.PhoenixIOException: SYSTEM:CATALOG
Error: SYSTEM:CATALOG (state=08000,code=101)org.apache.phoenix.exception.PhoenixIOException: SYSTEM: ...
- phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeou
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- apache phoenix 安装试用
备注: 本次安装是在hbase docker 镜像的基础上配置的,主要是为了方便学习,而hbase搭建有觉得 有点费事,用镜像简单. 1. hbase 镜像 docker pull har ...
- How to use DBVisualizer to connect to Hbase using Apache Phoenix
How to use DBVisualizer to connect to Hbase using Apache Phoenix Article DB Visualizer is a popular ...
随机推荐
- codeforces 703B
题意:有n座城市,其中k座是省会城市,每个城市有对应的点权,城市1-2-3-...-n-1有一条路相连,省会城市与其他所有的城市相连,且每两个城市间最多有一条路,每条路的边权为路连接的两座城市的点权乘 ...
- iOS开发进阶 - 使用Carthage管理iOS第三方库
移动端访问不佳,请访问我的个人博客 最近在研究Swift,一不小心发现一个好的的管理iOS第三方库Carthage,就跟第一次使用CocoaPods时一样兴奋不已,在研究了大半天后终于能用了,使用起来 ...
- Docker 容器内配置Tomcat manager 远程控制
下载tomcat镜像 , docker run it docker exec -ti 容器ID /bin/bash 进入容器 apt-get update , apt-get install vi ...
- JQuery -- Dom操作, 示例代码
1.内部插入节点 * append(content) :向每个匹配的元素的内部的结尾处追加内容 * appendTo(content) :将每个匹配的元素追加到指定的元素中的内部结尾处 * ...
- Search in Rotated Sorted Array, 查找反转有序序列。利用二分查找的思想。反转序列。
问题描述:一个有序序列经过反转,得到一个新的序列,查找新序列的某个元素.12345->45123. 算法思想:利用二分查找的思想,都是把要找的目标元素限制在一个小范围的有序序列中.这个题和二分查 ...
- antd 表单双向绑定的研究
痛点 在使用antd的表单时,大家觉得不够清爽,总结如下: 大量的模板语法,需要一定的学习成本. 需要手动地进行数据绑定,使用大量的onChange/setFieldsValue去控制数据. 无法通过 ...
- 新东方雅思词汇---6.3、brilli
新东方雅思词汇---6.3.brilli 一.总结 一句话总结: 发光 brilliant 英 [ˈbrɪlɪənt] 美 ['brɪljənt] adj. 灿烂的,闪耀的:杰出的:有才气的:精彩 ...
- Netty官方示例
一.DEMO 官方并没有使用Hello World来作为一个例子,而是采用RFC的DISCARD,这个协议定义了就是接收到请求后什么也不干. 第一步编写DiscardServerHandler类: p ...
- pOJ-1061 exgcd求同余方程组
链接 就是求(m-n)*a+b*l=y-x, 类似于求解a*x+b*y=c,r=gcd(a,b),当c%r==0时有解,用exgcd求出a*x+b*y=gcd(a,b)的解,然后x*c/gcd(a,b ...
- 用 LoadLibraryExW 函数测试加载 dll (CSharp、Windows)
效果如下: $ llbtest "E:\Developer\emgucv-windesktop 3.3.0.2824\libs\x64" LoadLibraryExW PATH: ...