Phoenix-4.14.0-CDH5.10编译版本(从Phoenix-4.14.0-CDH5.11.2降级)

 

 

  1. 依赖环境说明
  • CDH版本为5.10版本(但是Phoenix官网并没有提供与该版本对应的Phoenix)

  • CDH中Hbase的版本为Hbase1.2版本

虽然我们集群中的Hbase的版本在官网上有对应的Hbase1.2版本的Phoenix但是该版本经过测试,显示错误为连接不上Hbase,所以我们选择从4.14.0-cdh5.11.2重新编译成4.14.0-cdh5.10.2。

Python版本说明:该编译版本需要在Python2.X版本上运行,如果想查询自己linux主机上的Python版本使用:命令python  -v 查看

 

  1. Phoenix下载

官网地址为:http://phoenix.apache.org/download.html

  1. 编译

下载以后需要将该项目解压

打开IDEA然后导入项目,不过这个时候等待的时间有点长,需要下载大量的依赖,依赖加载完成以后,我们找到其中的build.txt文档,然后查看要求,之后通过IDEA中的ctrl+f查找pom.ml中的文档有没有版本说明,将其中的4.14.0-cdh5.11.2改为4.14.0-cdh5.10.2

    如果搜索框中颜色为蓝色,则说明该文档中有搜索的内容,找到并修改它,同样的修改操作在整个项目中的每个小项目中都需要修改

并且在Hbase中.idea中不需要修改

继续下面操作,使用Windows中的已经安装好的maven进行打包。(由于公司下载不了官网的maven包只好找百度云下载了一个maven的3.3版本的,因为Phoenix中build.txt文档要求是maven3.x,之后添加环境依赖,但是3.3版本不行,后来换了3.6版本的,并且setting文件不要修改成ali的因为编译的过程中有一个jar包ali的仓库没有。)

找到我们Phoenix源码包下的第一个pom.xml文件之后在如下图中

输入cmd命令进入Windows小黑框,然后输入命令:mvn clean install –DskipTests 进行编译,编译的时间会比较长

但是不要着急,注意每个小项目的完成情况,一共有16个。

编译完成如下图:

编译完成以后需要找出压缩包

 

  1. 安装

将编译好的安装包放到CDH的集群中的lib目录下

解压目录

tar -zxvf phoenix-4.14.0-cdh5.10.2.tar.gz

并重命名mv phoenix-4.14.0-cdh5.10.2 phoenix

进入Phoenix如下内容:

拷贝phoenix-4.14.0-cdh5.10.2-server.jar 的包到hbase中的lib中 并且每个regenserver都需要拷贝一份

 

cp phoenix-4.14.0-cdh5.10.2-server.jar  /opt/cloudera/parcels/CDH/lib/hbase/lib/

scp phoenix-4.14.0-cdh5.10.2-server.jar 主机名:/opt/cloudera/parcels/CDH/lib/hbase/lib/

重启hbase集群

 

重启之后进入Phoenix的bin目录下面执行(centos4,centos5,centos6为服务器主机名)

./sqlline.py centos4,centos5,centos6

 

 

执行结果如下:

执行!table命令得到原始表格如下:

安装完成,这时候还需要进行测试性能

  1. 测试
  1. 通过命令向Phoenix创建表格,并插入数据:

create table test (id varchar primary key,name varchar,age integer );

由于Phoenix中是区分大小写的所以在创建表格的时候没有用双引号“”所以会自动变成大写。

 

向Phoenix中插入数据:

upsert into test(id,name,age) values('000001','liubei',43);

结果如下:

这时候我们看Hbase中有没有产生映射

结果是我们刚刚插入的数据

这时候我们已经确定Phoenix已经和Hbase连接上了

 

  1. 测试JDBC连接

依赖如下:


<dependency>

      <groupId>org.apache.phoenix</groupId>

      <artifactId>phoenix-core</artifactId>

      <version>4.14.0-cdh5.11.2</version>

</dependency>

测试代码如下:

package ahhx.com.Phoenix;



import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.PreparedStatement;

import java.sql.Statement;



public class test {



    public static void main(String[] args) throws SQLException {

        Statement stmt = null;

        ResultSet rset = null;



        Connection con = DriverManager.getConnection("jdbc:phoenix:192.168.201.85,192.168.201.84,192.168.201.83");

        System.out.println("连接成功!");

        stmt = con.createStatement();



        stmt.executeUpdate("create table test1 (mykey integer not null primary key, mycolumn varchar)");

        stmt.executeUpdate("upsert into test1 values (1,'Hello')");

        stmt.executeUpdate("upsert into test1 values (2,'World!')");

        con.commit();



        PreparedStatement statement = con.prepareStatement("select * from test1");

        rset = statement.executeQuery();

        while (rset.next()) {

            System.out.println(rset.getString("mycolumn"));

        }

        statement.close();

        con.close();

    }

}

结果如下:

其中可能会出现的问题:

  1. Caused by: org.apache.hadoop.net.ConnectTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect.

解决方案:

     修改主机中的hosts文件,可能是Hbase连接出现的问题。网上也没有说明,但是改了hosts文件就好了

  1. Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled

解决方案:

  在java中的JDBC连接的时候,将Phoenix中的Hbase-site.xml配置文件放到resource文件中。

致谢:合肥兰智-数加大数据学院提供技术支持 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: pdi-ce-9.2.0.0-290是一款ETL工具Pentaho Data Integration Community Edition的版本号。而CDH是Cloudera公司提供的一套企业级的Hadoop平台,集成了多种Hadoop生态系统软件,并提供了企业级的支持和服务。因此,这两者并没有直接的对应关系。 不过,Pentaho Data Integration Community Edition可以通过一些插件来和CDH平台进行集成。例如,Pentaho官方提供的Hadoop分布式文件系统插件,允许用户在Pentaho中直接读写Hadoop上的数据。此外,Pentaho还提供了Hadoop集群管理插件,使得用户可以通过Pentaho来管理其Hadoop集群。 总体而言,Pentaho Data Integration Community Edition和CDH平台之间的集成关系,更依赖于具体的插件和版本选项,而不是版本号的对应关系。因此,如果需要在CDH平台中使用Pentaho Data Integration Community Edition,需要根据具体的场景和需求进行相应的版本和插件选择。 ### 回答2: pdi-ce-9.2.0.0-290对应CDH版本CDH 5.14.4。PDI (Pentaho Data Integration)是一款ETL工具,可用于数据集成、数据转换和数据处理等。CDH (Cloudera Distribution for Hadoop)是一种基于Hadoop的大数据平台,它包含了许多实用工具和组件,可以用于数据存储、数据处理、数据分析等。PDI与CDH的结合可在大数据环境中进行ETL操作,从而实现数据的高效转换和处理。PDI-ce-9.2.0.0-290版本CDH 5.14.4配套使用,可以充分发挥两者的优势,使得数据ETL更加高效和准确。 ### 回答3: pdi-ce-9.2.0.0-290可以对应CDH版本CDH6.0或者CDH6.2。PDI是Pentaho Data Integration的缩写,是一个开源的ETL(Extract,Transform,Load)工具,用于数据集成和数据处理。而CDH是Cloudera Distribution of Hadoop的缩写,是由Cloudera公司基于Apache Hadoop生态系统构建的一套企业级的大数据平台解决方案,包括了Hadoop核心系统和大量与之相关的生态工具。 CDH 6.x版本目前已经支持Apache Hadoop 3.0,所以这个版本的PDI也可以在CDH 6.0或CDH 6.2上运行。当然,具体版本的匹配还要根据具体的需求和场景进行选择。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值