CDH6.0-HBase集成Phoenix5.0

2020-04-14  本文已影响0人  天生小包

Apache Phoenix 为 Apache Hadoop 提供基于 SQL 的 OLTP 和运营分析,使用 Apache HBase 作为其后备存储,并提供与 Apache 生态系统中其他项目的集成,如 Spark、Hive、Pig、Flume和 MapReduce 。

1、下载Phoenix
$ wget http://apache.fayea.com/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
2、将phoenix*.jar拷贝到各个节点

包括Master、HBase的每个节点

 $ cd apache-phoenix-5.0.0-HBase-2.0-bin  
 $ scp -r apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz cdh@cdh02:/home/cdh/
3、解压Phoenix
$ tar -zxvf apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
$ cd apache-phoenix-5.0.0-HBase-2.0-bin
$ sudo phoenix*.jar  /opt/cloudera/parcels/CDH/lib/hbase/lib/

4、增加hbase-site.xml 配置

hbase-site.xml 的 Gateway客户端高级配置代码段(安全阀)
hbase-site.xml 的 RegionServer 高级配置代码段(安全阀)
切记!!! 这两个地方都要添加, 否则RegionServer启动不了
1、二级索引支持
<property>
  <name>hbase.regionserver.wal.codec</name>
  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
1、命名空间开启
<property>
  <name>phoenix.schema.isNamespaceMappingEnabled</name>
  <value>consistent</value>
</property>
HBase >> 配置 >> RegionServer >> 高级 >> ssl-server.xml 的 HBase 服务高级配置代码段(安全阀)>> 点击 + 添加
图一
图二
HBase >> 配置 >> Gateway >> 高级 >> ssl-server.xml 的 HBase 服务高级配置代码段(安全阀)>> 点击 + 添加
图三
图四

5、重启Hbase集群, 部署客户端配置

图五
把core.xml、hdfs.xml、hbase.xml拷贝到/home/cdh/apache-phoenix-5.0.0-HBase-2.0-bin/bin/下
 $ 上传下载文件到服务器,拷贝目录下所有文件到 /home/cdh/apache-phoenix-5.0.0-HBase-2.0-bin/bin/
 $ cp *.xml  /home/cdh/apache-phoenix-5.0.0-HBase-2.0-bin/bin/
 $ /home/cdh/apache-phoenix-5.0.0-HBase-2.0-bin/bin/sqlline.py
图四
Java使用引入依赖
<dependency>
  <groupId>org.apache.phoenix</groupId>
  <artifactId>phoenix-core</artifactId>
  <version>5.0.0-HBase-2.0</version>
  <exclusions> 
    <exclusion> 
      <groupId>org.apache.log4j</groupId>
      <artifactId>*</artifactId>
    </exclusion>
    <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>*</artifactId> 
    </exclusion> 
    <exclusion> 
      <groupId>com.google.guava</groupId> 
      <artifactId>*</artifactId> 
    </exclusion> 
    <exclusion> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>*</artifactId> 
    </exclusion> 
    <exclusion> 
      <groupId>javax.servlet</groupId> 
      <artifactId>*</artifactId> 
    </exclusion> 
  </exclusions> 
</dependency> 
<dependency> 
  <groupId>com.google.guava</groupId> 
  <artifactId>guava</artifactId> 
  <version>16.0.1</version> 
</dependency> 
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->      
<dependency> 
  <groupId>org.apache.hadoop</groupId> 
  <artifactId>hadoop-common</artifactId> 
  <version>2.8.4</version> 
</dependency>

package com.pactera.hbase;
import java.sql.*; 
public class Phoenix { 
  private static String driver = "org.apache.phoenix.jdbc.PhoenixDriver"; 
  public static void main(String[] args) throws SQLException { 
      try 
      { 
            Class.forName(driver); 
      } catch (ClassNotFoundException e) { 
            e.printStackTrace(); 
      }
   Statement stmt = null; 
   ResultSet rs = null; 
  Connection con = DriverManager.getConnection("jdbc:phoenix:storage01,storage02,storage03:2181/hbase"); 
  stmt = con.createStatement(); 
  String sql = "select * from test_phoenix_api"; 
  rs = stmt.executeQuery(sql); 
  while (rs.next()) { 
      System.out.print("id:"+rs.getInt("mykey"));         
      System.out.println(",name:"+rs.getString("mycolumn")); 
  } 
  stmt.close(); 
  con.close(); 
}
}
上一篇 下一篇

猜你喜欢

热点阅读