zoukankan      html  css  js  c++  java
  • apach hadoop2.6 集群利用Phoenix 4.6-hbase 批量导入并自动创建索引

    基础环境:

    1、安装apach 版本hadoop2.6

    2、部署hbase1.0.0

    3、下载phoenix-4.6.0-HBase-1.0。下载地址(http://mirror.nus.edu.sg/apache/phoenix/phoenix-4.6.0-HBase-1.0/bin/phoenix-4.6.0-HBase-1.0-bin.tar.gz)

    4、phoenix 集成HBase : 将hoenix-4.6.0-HBase-1.0-server.jar拷贝到每一个RegionServer下的hbase lib目录下

    配置hbse-site.xml 文件

    在hbase-site.xml加入如下配置

      <property>
              <name>hbase.regionserver.wal.codec</name>
                <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
                </property>
                        <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>
    
    <property>
      <name>hbase.master.loadbalancer.class</name>
        <value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value>
        </property>
        <property>
          <name>hbase.coprocessor.master.classes</name>
            <value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value>
            </property>

    否则在创建索引的时候会出现如下错误:

    java.sql.SQLException: ERROR 1029 (42Y88): Mutable secondary indexes must have the hbase.regionserver.wal.codec property 
    set to org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec in the hbase-sites.xml of every region server tableName=INDEX_CUSTOM

    5、进入phoenix 如下

    6、创建表和索引

    CREATE TABLE IF NOT EXISTS USPO (
    state CHAR(2) NOT NULL,
    city VARCHAR NOT NULL,
    population BIGINT CONSTRAINT my_pk PRIMARY KEY (state,city));

    create index index_pupulation on population(city,state);

    查看表是否创建成功:

    7、将测试数据上传到hdfs 上:

    uopu.csv
    NY,New York,8143197
    CA,Los Angeles,3844829
    IL,Chicago,2842518
    TX,Houston,2016582
    PA,Philadelphia,1463281
    AZ,Phoenix,1461575
    TX,San Antonio,1256509
    CA,San Diego,1255540
    TX,Dallas,1213825
    CA,San Jose,912332

    8、执行命令:

    hadoop jar /home/hadoop/phoenix-4.6.0-HBase-1.0-bin/phoenix-4.6.0-HBase-1.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -t uspo -i /phoenix/uopu.csv  -z node3,node4,node7:2181

    会执行Mapredue过程

    9、查询数据:

    10、查询hbase数据

    问题:

    发现查询phoenix 上的uspo 数据是空的。

     本文参考地址:https://phoenix.apache.org/secondary_indexing.html

  • 相关阅读:
    Java面试中常问的Spring方面问题(涵盖七大方向共55道题,含答案)
    Node.js环境搭建
    Node.js的开源博客系统Ghost搭建教程
    探讨一个“无法创建JVM”的问题(已解决)
    Spring Boot快速入门
    Spring Boot开发Web应用
    Spring Boot工程结构推荐
    元类的剖析和单例
    多态的简单剖析、内置方法和异常的解读
    面向对象的解释和属性查找的方式解读
  • 原文地址:https://www.cnblogs.com/zhanggl/p/5200330.html
Copyright © 2011-2022 走看看