`
085567
  • 浏览: 214033 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HBase加载大数据

阅读更多

一、概述

HBase有很多种方法将数据加载到表中,最简单直接的方法就是通过MapReduce调用TableOutputFormat方法,或者在client上调用API写入数据。但是,这都不是最有效的方式。

这篇文档将向你描述如何在HBase中加载大数据。采用MapReduce作业,将数据以HBase内部的组织格式输出成文件,然后将数据文件加载到已运行的集群中。(注:就是生成HFile,然后加载到HBase中。)

二、大数据载入的步骤

大数据的加载包含了2个步骤:

1、通过MapReduce的作业进行数据准备过程

首先,通过MapReduce使用HFileOutputFormat来生成HBase的数据文件格式。这样格式的数据文件就是HBase内部的文件组织格式,并且在将数据写入到集群的过程中是相当容易的。

为了使该方法更有效,HFileOutputFormat必须通过配置,每个输出的HFile必须适应单个的region。为了实现此功 能,MapReduce的Job采用了Hadoop的TotalOrderPartitioner类,通过进行分区操作用以对应表中各个region。

同时,HFileOutputFormat包含有一个非常方便的方法,configureIncrementalLoad(), 这个方法会基于表的当前区域边界自动设置一个TotalOrderPartitioner。

2、数据加载过程

通过HFileOutputFormat准备好数据之后,使用命令行工具将数据加载到集群中。这个命令行工具遍历准备好的数据文件,并确定每一个文件所属的region。然后,当连接到对应的Region Server,移动到HFile到存储目录为用户提供数据。

如果在数据准备或者数据载入的时候,region边界发生了变化,那么HBase将自动进行块分割,用以适应新的边界变化。这个过程效率是很低下的,特别是有其他的client在做数据录入操作。所以需要注意,尽量使用少的时间去创造数据文件以及录入该数据文件进入集群。

3、使用importtsv为大数据加载做准备

HBase自带了importtsv命令工具。通过hadoop jar /path/to/hbase-VERSION.jar importtsv 来使用这个命令。如果不带参数的执行会打印以下帮助信息:

Usage: importtsv -Dimporttsv.columns=a,b,c

Imports the given input directory of TSV data into the specified table.

The column names of the TSV data must be specified using the -Dimporttsv.columns option.

This option takes the form of comma-separated column names, where each column name is either a simple column family, or a columnfamily:qualifier.

The special column name HBASE_ROW_KEY is used to designate that this column should be usedas the row key for each imported record.

You must specify exactly one column to be the row key.

In order to prepare data for a bulk data load, pass the option:

  -Dimporttsv.bulk.output=/path/for/output

Other options that may be specified with -D include:

  -Dimporttsv.skip.bad.lines=false - fail if encountering an invalid line

4、使用completebulkload来载入数据

当使用importtsv导入数据之后,completebulkload 是用来导入数据到在运行的集群中。

completebulkload就是采用与importtsv 相同的输出路径和表的名称来执行。 例如:

$ hadoop jar hbase-VERSION.jar completebulkload /user/todd/myoutput mytable

这个命令会执行的非常快,完成之后在集群中就能看到新的数据。

5、高级用法

虽然importtsv 命令很有用,但是在许多情况下,用户可能需要通过编写代码或其他形式的导入数据。

如果要这样做,可以查看ImportTsv.java 源代码,并阅读HFileOutputFormat的Javadoc帮助文档。

通过代码编写载入大数据量可关注 LoadIncrementalHFiles类。

 

原文链接:http://blog.csdn.net/dajuezhao/article/details/6210459

分享到:
评论

相关推荐

    HBase中Coprocessor的介绍以及实际业务场景中的使用.pdf

    讲师:陈杨——快手大数据高级研发工程师 ...内容概要:(1)讲解hbase coprocessor的原理以及使用场景,(2) coprocessor整个流程实战,包括开发,加载,运行以及管理(3)结合1,2分析coprocessor在rsgroup中的具体使用

    Hbase+Spring boot实战分布式文件存储

    2-1 HBase简介及其在大数据生态圈的位置 2-2 HBase数据存储模型及与关系型数据库的区别 2-3 Hadoop伪分布式集群安装 2-4 HBase伪分布式集群安装 2-5 HBase基础架构 2-6 HBase阶段小结 第3章 HBase原理与实战 介绍...

    2013中国大数据技术大会PPT——360超大规模HBASE集群的改进

    【大数据技术主题论坛】奇虎360技术经理赵健博介绍目前360搜索、安全、监控等业务都使用了HBase集群,同时重点介绍了奇虎360近一年来结合业务对HBase作出的改进,如针对集群大、Region多致使启动时间过长进行的优化...

    HBaseBulkImportXML:如何将 XML 文件中的数据批量导入 HBase 表的示例

    HBase 提供对大数据的随机读写访问,但将大数据放入 HBase 可能是一个挑战。 使用 API 将数据放入工作中,但因为它必须遍历 HBase 的写入路径(即在将其刷新到 HFile 之前通过 WAL 和 memstore),它比您简单地绕过...

    HBase_XML_bulkimport

    HBase 提供对大数据的随机读写访问,但将大数据放入 HBase 可能是一个挑战。 使用 API 将数据放入工作中,但因为它必须遍历 HBase 的写入路径(即在将其刷新到 HFile 之前通过 WAL 和 memstore),它比您简单地绕过...

    kafkajava源码-bigdatalearnshare:专注于大数据领域常用技术,如Spark、Hadoop、Hive、HBase、Kaf

    专注于大数据领域常用技术,如Spark、Hadoop、Hive、HBase、Kafka、Zookeeper等的应用、实战技巧、源码解读,语言主要以Java和Scala为主 目录 Java Scala Spark MapReduce HDFS Hive Yarn [不可不知的资源管理调度器...

    大数据企业级项目用户画像实战

    第五章Hbase条件过滤、数据条件动态过滤动态加载、推荐系统入门(协同过滤算法讲解CF、使用ALS实现) 第六章机器学习快速入门及应用 第七章数据挖掘标签开发(Kmens算法) 第八章算法模型调优、RFE、PSM标签开发 第...

    大数据之运维.pptx

    不同的存储类型,例如,纯文本文件、HBase 中的文件。 将元数据保存在关系数据库中,大大减少了在查询过程中执行语义检查的时间。 可以直接使用存储在Hadoop 文件系统中的数据。 内置大量用户函数UDF 来操作时间、...

    FusionInsightHD华为大数据平台.pdf

    同时也可以将数据从关系型数据库或者⽂件 服务器导⼊到FusionInsight HD的HDFS/HBase中,或者反过来从HDFS/HBase导出到关系型数据库或者⽂件服务器中。同时提供 REST API接⼝,供第三⽅调度平台调⽤。 Loader模型...

    BigDataSalaryAnaliySystem:大数据招聘信息分析平台

    调用加载到HBase数据库的项目(Jar),使数据加载到HBase中 2.加载数据到HBase数据库项目 读取指定目录下的文件,分析其中的内容并保存到HBase中 多线程加载 3.Web端展现项目 图形化展现分析数据后的

    大数据组件-Flume高可用集群搭建

    Flume是一个分布式、可靠和高可用性的数据采集工具,用于将大量数据从各种源...collector的作用是将多个agent的数据汇总后,加载到storage中。storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE,HBase等。

    毕设项目:商品大数据实时推荐系统

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    基于spark streaming和kafka,hbase的日志统计分析系统.zip

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    基于spark的外卖大数据平台分析系统.zip

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    基于spark+flume+kafka+hbase的实时日志处理分析系统.zip

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    基于hbase + spark 实现常用推荐算法(主要用于精准广告投放和推荐系统).zip

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    基于spark+drools+kafka+redis的大数据实时风控系统.zip

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    基于Spark2.2的新闻网大数据实时分析系统设计与实现.zip

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    基于Spark框架的新闻网大数据实时分析可视化系统项目.zip

    只要掌握Spark,就能够为大多数的企业的大数据应用场景提供明显的加速。存储层:HDFS作为底层存储,Hive作为数据仓库 (Hive Metastore:Hive管理数据的schema) 离线数据处理:SparkSQL (做数据查询引擎<===> 数据...

    MaxCompute数据开发实战—数据进入MaxCompute的N种方式.pdf

     离线数据上云(hdfs/hbase/文件/RDS/OSS)->MaxCompute数仓内部数据处理- >ADS同步->应用查询及大屏离线展现等;  实时数据上云(日志)->DataHub->StreamCompute->RDS->大屏实时展现等。 实现一个实际的、...

Global site tag (gtag.js) - Google Analytics