Phoenix4.5适配CDH5.4
来源:互联网 发布:查泰莱夫人的情人 知乎 编辑:程序博客网 时间:2024/06/03 17:29
问题描述
Error: org.apache.hadoop.hbase.DoNotRetryIOException: SYSTEM.CATALOG: org.apache.hadoop.hbase.client.Scan.setRaw(Z)Lorg/apache/hadoop/hbase/client/Scan;
at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:89)
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.createTable(MetaDataEndpointImpl.java:1524)
at org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:16093)
at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:7234)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1776)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1758)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32209)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2034)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Scan.setRaw(Z)Lorg/apache/hadoop/hbase/client/Scan;
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.buildDeletedTable(MetaDataEndpointImpl.java:1107)
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.loadTable(MetaDataEndpointImpl.java:1211)
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.createTable(MetaDataEndpointImpl.java:1404)
... 10 more (state=08000,code=101)
问题解决
Cloudera doesn't officially support Apache phoenix, it's still in cloudera Labs, so you cannot find any Cloudera Pheonix tar.gz files in cloudera repository, The only place where you can find Phoenix in Cloudera repository is in the parcel repository, However parcel can be used only if you install through cloudera manager, latest available version of cloudera Phoenix is 4.3.0.
If you wanted to execute Phoenix 4.4 or 4.5 version on Cloudera Hadoop distribution, you need to re-build phoenix libraries using CDH dependency jars. You cannot simply use apache Phoenix tar.gz
编译
1、Download Apache phoenix 4.5 source from Apache repository. (Skip this step if you are downloading from the above github page)
2、Rebuild the source code using CDH dependency jars - Update pom.xml and 2 source files as follows(My CDH version is 5.4.2)
diff phoenix-4.5_Updated/phoenix-4.5.0-HBase-1.0-src/pom.xml phoenix-4.5_Orig/phoenix-4.5.0-HBase-1.0-src/pom.xml
28c28
< <!-- <module>phoenix-pig</module> -->
---
> <module>phoenix-pig</module>
37a38,41
> <id>apache release</id>
> <url>https://repository.apache.org/content/repositories/releases/</url>
> </repository>
> <repository>
42,43c46,50
< <id>cloudera</id>
< <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
---
> <id>apache snapshot</id>
> <url>https://repository.apache.org/content/repositories/snapshots/</url>
> <snapshots>
> <enabled>true</enabled>
> </snapshots>
45d51
<
54d59
<
77,81c82,83
< <hbase.version>1.0.0-cdh5.4.2</hbase.version>
< <hadoop-two.version>2.6.0-cdh5.4.2</hadoop-two.version>
/< <hadoop.version>2.6.0-cdh5.4.2</hadoop.version>
< <pig.version>0.12.0</pig.version>
< <flume.version>1.5.0-cdh5.4.2</flume.version>
---
> <hbase.version>1.0.1</hbase.version>
> <hadoop-two.version>2.5.1</hadoop-two.version>
84a87,88
> <hadoop.version>2.5.1</hadoop.version>
> <pig.version>0.13.0</pig.version>
97a102
> <flume.version>1.4.0</flume.version>
449,450c454
<
< <dependency>
---
> <dependency>
454c458
< </dependency>
---
> </dependency>
[h4ck3r@host1 phoenix]$ diff phoenix-4.5_Updated/phoenix-4.5.0-HBase-1.0-src/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexMerger.java phoenix-4.5_Orig/phoenix-4.5.0-HBase-1.0-src/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexMerger.java
84c84
< rss.getServerName(), metaEntries,1);
---
> rss.getServerName(), metaEntries);
[h4ck3r@host1 phoenix]$ diff phoenix-4.5_Updated/phoenix-4.5.0-HBase-1.0-src/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexSplitTransaction.java phoenix-4.5_Orig/phoenix-4.5.0-HBase-1.0-src/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexSplitTransaction.java
291c291
< daughterRegions.getSecond().getRegionInfo(), server.getServerName(),1);
---
> daughterRegions.getSecond().getRegionInfo(), server.getServerName());
978c978
< }
---
> }
\ No newline at end of file
3、Above build will create new Jars under target directory of each sub component.
4、Extract phoenix-4.5.0-HBase-1.0-bin.tar.gz and replace the below Phoenix Jars with new Jars
- phoenix-4.5.0-HBase-1.0-client.jar
- phoenix-4.5.0-HBase-1.0-server-without-antlr.jar
- phoenix-4.5.0-HBase-1.0-client-minimal.jar
- phoenix-assembly-4.5.0-HBase-1.0-tests.jar
- phoenix-4.5.0-HBase-1.0-client-without-hbase.jar
- phoenix-core-4.5.0-HBase-1.0.jar
- phoenix-4.5.0-HBase-1.0-server.jar
5、Replace phoenix-4.5.0-HBase-1.0-server.jar and phoenix-core-4.5.0-HBase-1.0.jar in hbase lib location and restart hbase. (In 4.7 only phoenix-4.7.0-cdh5.X.1-server.jar to be copied to hbase lib)
6、Execute phoenix command from the new updated directory.
参考资料
https://stackoverflow.com/questions/31849454/using-phoenix-with-cloudera-hbase-installed-from-repo
阅读全文
0 0
- Phoenix4.5适配CDH5.4
- Phoenix4.6适配CDH5.4
- cdh5.5 RHadoop安装
- CDH5.4安装
- CDH5.4 安装Phoenix
- cdh5
- phoenix适配cdh5.5.2安装
- eclipse 连接 cdh5.5 插件
- eclipse 连接 cdh5.5 插件
- CDH5.5离线安装部署
- Phoenix4.6 BulkLoad OOM
- Phoenix4.8安装
- Phoenix4.8整合Spark
- centos安装Phoenix4.8+
- phoenix4.10和phoenix4.9版本冲突问题
- Phoenix4.8与Hive整合
- apache phoenix4.6配置tracing
- cdh5.4、cm5.4 安装详细步骤
- mysql 5.6.26 winx64安装配置图文教程
- 随系统复杂度的增长,系统架构的变化和侧重点
- H5性能优化测试建议
- MD5安全算法
- AJAX(四)--JSON信息的处理
- Phoenix4.5适配CDH5.4
- ORACLE普通表转换成自动分区表
- 上海校区设计学院学员作品汇报展 2017年7月17号,传智播客上海校区设计学院组织了一期“学员作品展示”活动,一方面是为了检验学员所学成果,另一方面也让在校学生更好的了解设计学院。
- 【SqlServer】 数据库备份及其还原
- GKComponentSystem
- 有用的Java程序片段
- 常用手机尺寸以及分辨率
- LinuxStudyNote(8)-Linux常用命令(2)-文件处理命令(3)-切换工作目录命令cd
- AndroidStudio通用混淆配置文件