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. 【lua学习笔记】——Notepad++ 设置运行 lua 和 python

    一.设置 run -> 设置 cmd /k lua "$(FULL_CURRENT_PATH)" & PAUSE & EXIT   二.原理:  cmd /k ...

  2. 以您熟悉的编程语言为例完成一个hello/hi的简单的网络聊天程序

    Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信,应用程序通常通过"套接字"向网络发出 ...

  3. 快速调通支付宝当面付Demo

    1.访问如下地址: https://auth.alipay.com/login/ant_sso_index.htm?goto=https%3A%2F%2Fopenhome.alipay.com%2Fp ...

  4. iView的表单table

    // html<div class="exam-list"> <Table :columns="columns7" :data="d ...

  5. CSS3新增(选择器{属性选择器,结构伪类选择器,伪元素选择器})

    1.属性选择器 属性选择器,可以根据元素特定的属性来选择元素,这样就不用借助 类 或者 id选择器. E [ att ]   选择具有 att 属性的 E 元素   例如:input [ value ...

  6. 2018-2-13-win10-uwp-魔力鬼畜

    title author date CreateTime categories win10 uwp 魔力鬼畜 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...

  7. 手机作为蓝牙音频源连接到Linux时,如何通过音量键调节传入的音量大小

    背景一: 我们知道,把手机作为音频源通过蓝牙连接到电脑,就可以把手机的声音转移到电脑上. 背景二: 我喜欢带着耳机用我的Linux本刷youtube,也喜欢用我的iPhone听音乐.为了同时做这两件事 ...

  8. 【LeetCode】二分

    [475] Heaters [Easy] 给你一排房子,一排加热器.找到能warm所有房子的最小加热器半径. 思路就是对于每个房子,找离它最近的左右两台heater, 分别求距离.温暖这个房子的hea ...

  9. MATLAB GUI 设计要点 转

    https://www.cnblogs.com/wangh0802PositiveANDupward/p/4588512.html 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: ...

  10. element 的时间快捷键

    1. <div> <el-date-picker v-model="value4" type="month" :picker-options= ...