zoukankan      html  css  js  c++  java
  • 整合phoenix4.6.0-HBase-1.0到cdh5..4.7 编译phoenix4.6源码 RegionServer 宕机

    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

    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>
  • 相关阅读:
    Linux0.11内核--fork进程分析
    Linux0.11内核--内存管理之1.初始化
    Linux0.11内核--进程调度分析之2.调度
    Linux0.11内核--进程调度分析之1.初始化
    github
    推荐大家一个靠谱的论文检测平台。重复的部分有详细出处以及具体修改意见,能直接在文章上做修改,全部改完一键下载就搞定了。他们现在正在做毕业季活动, 赠送很多免费字数,可以说是十分划算了!地址是:https://www.paperpass.com/
    妈妈再也不用担心我找idea激活码了
    eclipse集成tomcat
    DNS--localhost
    RFC 2819)第5节"Definitions"除外的全部内容
  • 原文地址:https://www.cnblogs.com/zhanggl/p/5110265.html
Copyright © 2011-2022 走看看