Phoenix 集成HBase

Phoenix 版本:phoenix-4.6.0-HBase-1.0

源码下载地址:

http://apache.cs.uu.nl/phoenix/phoenix-4.6.0-HBase-1.0/src/phoenix-4.6.0-HBase-1.0-src.tar.gz

应用下载地址:

http://apache.cs.uu.nl/phoenix/phoenix-4.6.0-HBase-1.0/bin/phoenix-4.6.0-HBase-1.0-bin.tar.gz

HBase        版本:1.0.0-cdh5.4.7

JDK              版本:1.7.0_45

Phoenix 编译

1、下载源码:

下载源码解压后需要修改文件有pom.xml、LocalIndexMerger.java、IndexSplitTransaction.java

1.1、Pom.xml位于phoenix-4.6.0-HBase-1.0-src 下

1.2、 LocalIndexMerger.java位于phoenix-4.5.0-HBase-1.0-src/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver

1.3、IndexSplitTransaction.java位于

phoenix-4.5_Orig/phoenix-4.5.0-HBase-1.0-src/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver

修改源码

pom.xml

1、将源码包源修改为cloudera 具体如下:

<id>cloudera</id>      <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>

</repository>

效果如下图

2、 修改HBase版本和cdh版本信息

将Hadoop依赖的版本修改为cloudera,HBase 也修改为cdh版本具体如下:

<!-- Hadoop Versions -->

<hbase.version>1.0.0-cdh5.4.7</hbase.version>

<hadoop-two.version>2.6.0-cdh5.4.7</hadoop-two.version>

<!-- Dependency versions -->

<commons-cli.version>1.2</commons-cli.version>

<hadoop.version>2.6.0-cdh5.4.7</hadoop.version>

<flume.version>1.5.0-cdh5.4.7</flume.version>

效果如下图:

修改IndexSplitTransaction.java

需要修改的地方位于84行

原来: rss.getServerName(), metaEntries);

修改后:rss.getServerName(), metaEntries, 1);

如下效果图:

修改IndexSplitTransaction.java

需要修改的地方位于291行

修改前:

daughterRegions.getSecond().getRegionInfo(), server.getServerName());

修改后:

daughterRegions.getSecond().getRegionInfo(), server.getServerName(), 1);

效果图如下:

重新编译

运行mvn clean install –DskipTests 即可

新jar 包

新jar 包在phoenix-assembly 下可以找到

Core 包位于phoenix-core 下

Phoenix 和hbase集成

官网安装步骤:http://phoenix.apache.org/installation.html#SQL_Client

Installation

To install a pre-built phoenix, use these directions:

  • Download and expand the latest phoenix-[version]-bin.tar.
  • Add the phoenix-[version]-server.jar to the classpath of all HBase region server and master and remove any previous version. An easy way to do this is to copy it into the HBase lib directory (use phoenix-core-[version].jar for Phoenix 3.x)
  • Restart HBase.
  • Add the phoenix-[version]-client.jar to the classpath of any Phoenix client.

1、在HBase服务端下载phoenix 并解压,将上诉7个jar拷贝进来即可。

2、将新编译后的phoenix-4.6.0-HBase-1.0-server.jar拷贝到每一个RegionServer下 /opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hbase/lib

3、在服务端配置环境变量

export HBASE_HOME=opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hbase
export CLASSPATH=.:$HBASE_HOME/lib/phoenix-4.6.0-HBase-1.0-server.jar:HBASE_HOME/lib/phoenix-4.6.0-HBase-1.0-client.jar

export PATH=$PATH:$JAVA_HOME/bin:$HBASE_HOME

4、重启RegionServer 服务

RegionServer假死状态

测试

在服务端Phoenix home目录下的bin 运行

./sqlline.py node1:2181

异常如下:

错误日志提示:

2016-01-13 14:20:27,197 WARN org.apache.hadoop.hbase.io.util.HeapMemorySizeUtil: hbase.regionserver.global.memstore.upperLimit is deprecated by 
hbase.regionserver.global.memstore.size
2016-01-13 14:20:27,448 WARN com.cloudera.cmf.event.publish.EventStorePublisherWithRetry: Failed to publish event:
SimpleEvent{attributes={ROLE_TYPE=[REGIONSERVER], CATEGORY=[LOG_MESSAGE], ROLE=[hbase-REGIONSERVER-a1c374abf13fe24d8982a45aa379f538],
SEVERITY=[IMPORTANT], SERVICE=[hbase], HOST_IDS=[896038a6-2fe4-4e58-89ec-bae0f871ca0c], SERVICE_TYPE=[HBASE], LOG_LEVEL=[WARN],
HOSTS=[node3], EVENTCODE=[EV_LOG_EVENT]}, content=hbase.regionserver.global.memstore.upperLimit is deprecated by hbase.regionserver.global.memstore.size,
timestamp=1452666026857}
2016-01-13 14:20:27,722 INFO org.apache.hadoop.hbase.util.ServerCommandLine: env:CDH_FLUME_HOME=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/flume-ng
2016-01-13 14:20:27,723 INFO org.apache.hadoop.hbase.util.ServerCommandLine: env:JAVA_HOME=/usr/java/default

错误信息

1、  RegionSever直接挂掉

参考地址:http://stackoverflow.com/questions/31849454/using-phoenix-with-cloudera-hbase-installed-from-repo

在phoenix 上配置HBase支持Phoenix二级索引

配置文件:在每一个RegionServer的hbase-site.xml里加入如下属性

<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property> <property>
<name>hbase.region.server.rpc.scheduler.factory.class</name>
<value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property> <property>
<name>hbase.rpc.controllerfactory.class</name>
<value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property> <property>
<name>hbase.coprocessor.regionserver.classes</name>
<value>org.apache.hadoop.hbase.regionserver.LocalIndexMerger</value>
</property>

2、在每一个master的hbase-site.xml里加入如下属性

<property>
<name>hbase.master.loadbalancer.class</name>
<value>org.apache.phoenix.hbase.index.balancer.IndexLoadBala ncer</value>
</property> <property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value>
</property>

整合phoenix4.6.0-HBase-1.0到cdh5..4.7 编译phoenix4.6源码 RegionServer 宕机的更多相关文章

  1. HBase RegionServer宕机处理恢复

    本文分析RegionServer宕机后这个region server上的region是如何在其他region server上恢复的. region server宕机后发生了什么   HMaster有一 ...

  2. HBase–RegionServer宕机恢复原理

    Region Server宕机总述 HBase一个很大的特色是扩展性极其友好,可以通过简单地加机器实现集群规模的线性扩展,而且机器的配置并不需要太好,通过大量廉价机器代替价格昂贵的高性能机器.但也正因 ...

  3. Cocos2d-X3.0 刨根问底(五)----- Node类及显示对象列表源码分析

    上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种 ...

  4. elementary os 0.4.1下编译GCC-7.1源码并安装成功

    参考文章:http://www.2cto.com/os/201402/281131.html 前几天为了图个新鲜,安装了elementary os 0.4.1,的确是一股清流,可惜的是gcc版本觉得有 ...

  5. abp vnext2.0核心组件之.Net Core默认DI组件切换到AutoFac源码解析

    老版Abp对Castle的严重依赖在vnext中已经得到了解决,vnext中DI容器可以任意更换,为了实现这个功能,底层架构相较于老版abp,可以说是进行了高度重构.当然这得益于.Net Core的D ...

  6. asp.net core 2.0 web api + Identity Server 4 + angular 5 可运行前后台源码

    前台使用angular 5, 后台是asp.net core 2.0 web api + identity server 4. 从头编写asp.net core 2.0 web api 基础框架: 第 ...

  7. 基于:Hadoop 2.6.0-cdh5.4.0 hive1.1.0 HBase 1.0.0-cdh5.4.0 关键配置文件

    core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value ...

  8. Phoenix 5.0 hbase 2.0 org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosKeyTab

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  9. java工作流引擎 Activiti6.0 websocket 即时聊天发图片文字 好友群组 SSM源码

    时通讯:支持好友,群组,发图片.文件,消息声音提醒,离线消息,保留聊天记录 工作流模块--------------------------------------------------------- ...

随机推荐

  1. MySQL的安装配置(无坑

    简单记录一下自己掉坑无数之后,终于找到的一个不坑的方法. 一.安装 #进入一个习惯的文件夹 cd /usr/local/src #下载资源包 wget -i -c http://dev.mysql.c ...

  2. Android Studio3.3中Cannot resolve symbol ActivityTestRule

    最近在看<Android编程权威指南>,在Windows10下安装了Android Studio3.3,边看编练习书中的例子程序,看到第21章""音频播放与单元测试&q ...

  3. Python测试代理ip是否有效

    方式一: 通过icanhazip.com返回的ip地址进行检测 import requests '''代理IP地址(高匿)''' proxy = { 'http': 'http://117.85.10 ...

  4. Windows IIS7 下安装配置 PHP7.0

    确认Microsoft Visual C++版本 Microsoft Visual C++的版本至关重要,根据Microsoft Visual C++版本下载的PHP不同.        PHP官网的 ...

  5. Java中HashMap与ConcurrentHashMap的区别

    从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心. 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从 ...

  6. byte为什么要与0xff

    面对带正负号的数,会采用符号扩展,如果原值是正数,则高位补上0:如果原值是负数,高位补1.二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.当前的计算机系统使用的基本上是二 ...

  7. 在egg中配置cors

    在egg中配置 cors(跨域) 第一步,安装 egg-cors npm i egg-cors --save 第二步,配置 cors 在config/plugin.js文件下添加: exports.c ...

  8. SQLServer存储过程学习记录

    简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理. 一.存储过程的概述 SQL Server中的存储过程是使用T_SQL编写的代码段.它的目的在于能够方便 ...

  9. 微信小程序のwxss

    一.wxss简介 wxss是微信小程序的样式文件,同h5框架的css类似,它具有以下特性: 二.外联样式导入 我们可以通过@import引入外部文件的样式 小程序样式是从上到下,从左到右执行的,如果样 ...

  10. window 下总是object_detection/protos/*.proto: No such file or directory

    这是因为目前的protoc3.5有Bug,换成3.4就好了https://github.com/google/protobuf/releases/tag/v3.4.0