zoukankan      html  css  js  c++  java
  • Hbase数据IO

    场景及方案分析

    场景1:logs --> HBase

    • logs -> flume -> hfile -> import -> HBase (实时)
    • csv导入HBase 使用hive 作为临时表csv导入HBase
    • tsv导入HBase 直接import 方式1

    场景2:RDBMS --> HBase

    • RDBMS -> sqoop -> Hfile -> import -> HBase (非实时) 方式1
    • RDBMS -> JDBC -> Put API -> HBase (实时较高,纯手写,较常用,因为需要过滤处理) 方式3
    • RDBMS -> Stome -> HBase (实时)
    • RDBMS -> Spark -> HBase (实时)

    场景3:集群性能测试

    • 自己写多线程并发程序(),测试读写速度

    场景4:HBase -> RDBMS

    三种方式

    1.Using the HBase Put API

    使用Put API import,缺点:数据保存在内存中,大数据量处理速度慢,数据缺少过滤

    HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp` 
    $HADOOP_HOME/bin/yarn jar 
    $HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar 
    importtsv 
    -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:sex,info:age 
    user_from_tsv 
    /user/cen/data/hbase_import_user.tsv
    

    2.Using the HBase bulk load tool

    使用MapReduce存储成HBase底层文件,优点,减少HBase集群插入压力(不经过插入),降低Job集群时间提高运行速度

    # 跟上述命令不用的是,这个导入并不会将数据导入到HBase而是到一个指定的文件夹
    # 使用import生成Hfile文件到HDFS,底层通过MapReduce(只有Map)实现
    HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp`:${HBASE_HOME}/conf 
    $HADOOP_HOME/bin/yarn jar 
    $HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar 
    importtsv 
    -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:sex,info:age 
    -Dimporttsv.bulk.output=/user/cen/hbase/hfileoutput 
    user_from_tsv_bulk  
    /user/cen/data/hbase_import_user.tsv
    
    # 加载数据(非MapReduce),相当于移动数据
    HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp`:${HBASE_HOME}/conf 
    $HADOOP_HOME/bin/yarn jar 
    $HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar 
    completebulkload 
    /user/cen/hbase/hfileoutput 
    user_from_tsv_bulk
    

    3.Using a customized MapReduce job

    自定义 MapReduce Job 优点:前所未有的自由度,缺点:我有一句mmp不知当讲不当讲

    a.mapreduce

    csv -> hfile
    

    b.bulk load

    hfile -> table
    

    bulk_load_API

  • 相关阅读:
    leetcode204-统计质数个数之一步步调试超时
    SpringBoot-注解一句话
    算法-总结规律
    kafka-版本变更相关
    异步线程池如何做同步业务
    es-快捷DSL检索手记
    并发学习第七篇——ThreadPoolExecutor
    kafka-consumer端的设计细节
    kafka-producer使用总结
    kafka-topic重要配置分析
  • 原文地址:https://www.cnblogs.com/cenzhongman/p/7402929.html
Copyright © 2011-2022 走看看