Hbase Bulkload】的更多相关文章

1.概述 在进行数据传输中,批量加载数据到HBase集群有多种方式,比如通过HBase API进行批量写入数据.使用Sqoop工具批量导数到HBase集群.使用MapReduce批量导入等.这些方式,在导入数据的过程中,如果数据量过大,可能耗时会比较严重或者占用HBase集群资源较多(如磁盘IO.HBase Handler数等).今天这篇博客笔者将为大家分享使用HBase BulkLoad的方式来进行海量数据批量写入到HBase集群. 2.内容 在使用BulkLoad之前,我们先来了解一下HBa…
在大量数据需要写入HBase时,通常有Put方式和BulkLoad两种方式. Put不做解释. BulkLoader方式的优势在于: 1.不会触发WAL预写日志,当表还没有数据时进行数据导入不会产生Flush和Split. 2.减少接口调用的消耗,是一种快速写入的优化方式. 但如果使用Spark操作HBase BulkLoader时,需要对数据的Qualifier按字典序排序,再按照RowKey按字典序排序.否则会出现 java.io.IOException: Added a key not l…
前言 Apache HBase 是目前大数据系统中应用最为广泛的分布式数据库之一.我们经常面临向 HBase 中导入大量数据的情景,通常会选择使用标准的客户端 API 对 HBase 进行直接的操作,或者在MapReduce作业中使用 TableOutputFormat 作为输出.实际上,借助 HBase 的 Bulk Load 特性可以更加便捷.快速地向HBase数据库中导入数据. MapReduce 在写入 HBase 时常采用 TableOutputFormat 方式,直接写入 HBase…
1. 现有的三方包不能完全支持 - 官方:hbase-spark,不能设置 timestamp - unicredit/hbase-rdd:接口太复杂,不能同时支持多个 family 2. HFile 得是有序的,排序依据 KeyValue.KVComparator,于是我们自定义一个 Comparator,内部调用 KeyValue.KVComparator 3. 如果没有自定义 partitioner,极有可能出现以下异常ERROR: "java.io.IOException: Retry…
hbase.tmp.dir:本地文件系统的临时目录,默认是java.io.tmpdir/hbase−java.io.tmpdir/hbase−{user.name}: hbase.rootdir:hbase持久化的目录,被所有regionserver共享,默认${hbase.tmp.dir}/hbase,一般设置为hdfs://namenode.example.org:9000/hbase类似,带全限定名: hbase.cluster.distributed:hbase集群模式运作与否的标志,默…
该文档是用Hbase默认配置文件生成的,文件源是 hbase-default.xml hbase.rootdir 这个目录是region server的共享目录,用来持久化HBase.URL需要是'完全正确'的,还要包含文件系统的scheme.例如,要表示hdfs中的'/hbase'目录,namenode 运行在namenode.example.org的9090端口.则需要设置为hdfs://namenode.example.org:9000/hbase.默认情况下HBase是写到/tmp的.不…
hbase.tmp.dir \({java.io.tmpdir}/hbase-\){user.name} 本地文件系统上的临时目录.将'/tmp'改为其他可以持久保存文件的位置,通常能够解决java.io.tmpdir.'/tmp'目录在机器重启后将会被清空. hbase.rootdir \({hbase.tmp.dir}/hbase</value> <description>该目录被region server共享并且用来保存HBase的持久化数据.这个URL应该完全按照文件系统模…
3.2.4 反向时间戳 反向扫描API HBASE-4811(https://issues.apache.org/jira/browse/HBASE-4811)实现了一个API来扫描一个表或范围内的一个范围 表反向,减少了对正向或反向扫描优化模式的需求.此功能在HBase 0.98和更高版本中可用.有关更多信息,请参阅Scan.setReversed()(https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.h…
第2章 Apache HBase配置 本章在“入门”一章中进行了扩展,以进一步解释Apache HBase的配置. 请仔细阅读本章,特别是基本先决条件,确保您的HBase测试和部署顺利进行,并防止数据丢失. 熟悉支持和测试期望.   2.1 配置文件 2.1.1 配置信息介绍 Apache HBase使用与Apache Hadoop相同的配置系统. 所有配置文件都位于conf /目录中,需要保持群集中每个节点的同步 2.1.2 配置文件简介 backup-masters 默认情况下不存在.一个纯…
hbase.tmp.dir:本地文件系统的临时目录,默认是java.io.tmpdir/hbase−java.io.tmpdir/hbase−{user.name}: hbase.rootdir:hbase持久化的目录,被所有regionserver共享,默认${hbase.tmp.dir}/hbase,一般设置为hdfs://namenode.example.org:9000/hbase类似,带全限定名: hbase.cluster.distributed:hbase集群模式运作与否的标志,默…
hbase一般用于大数据的批量分析,所以在很多情况下需要将大量数据从外部导入到hbase中,hbase提供了一种导入数据的方式,主要用于批量导入大量数据,即importtsv工具,用法如下:   Usage: importtsv -Dimporttsv.columns=a,b,c <tablename> <inputdir> Imports the given input directory of TSV data into the specified table. The col…
转自:http://www.cnblogs.com/shitouer/archive/2013/02/20/hbase-hfile-bulk-load.html 一.这种方式有很多的优点: 1. 如果我们一次性入库hbase巨量数据,处理速度慢不说,还特别占用Region资源, 一个比较高效便捷的方法就是使用 “Bulk Loading”方法,即HBase提供的HFileOutputFormat类. 2. 它是利用hbase的数据信息按照特定格式存储在hdfs内这一原理,直接生成这种hdfs内存…
一.前言 接触HBase已近半年,从一无所知到问题的解决,在数据落地方面也有了一定的了解,在此记录这半年来碰到的一些问题和对一些数据落地方面的见解,本篇主要介绍一下hbase安装方面的信息 二.安装环境 对于生产环境而言,一个hbase集群可能包含几百上千机器,集群必不可少的几个组件,如Zookeeper, Hbase, Hadoop等,其中Zookeeper一般是奇数台且独立部署,HBase方面主要包括Master结点和RegionServer结点,Hadoop方面包括NameNode和Dat…
HBase官方文档 目录 序 1. 入门 1.1. 介绍 1.2. 快速开始 2. Apache HBase (TM)配置 2.1. 基础条件 2.2. HBase 运行模式: 独立和分布式 2.3.配置文件 2.4. 配置示例 2.5.重要配置   3. 升级 3.1. 从 0.94.x 升级到 0.96.x 3.2. 从 0.92.x 升级到 0.94.x 3.3. 从 0.90.x 升级到 0.92.x 3.4. 从0.20x或0.89x升级到0.90.x   4. HBase Shell…
摘要:第九届中国数据库技术大会,阿里巴巴技术专家孟庆义对阿里HBase的数据管道设施实践与演进进行了讲解.主要从数据导入场景. HBase Bulkload功能.HImporter系统.数据导出场景.HExporter系统这些部分进行了讲述. 直播视频请点击PPT下载请点击精彩视频整理: 数据导入场景 生意参谋 生意参谋是一种为商家服务,帮助商家进行决策和运营的数据产品.如在淘宝或天猫上开一家店,生意参谋会提供店里每天进入的流量.转化率.客户的画像和同行业进行对比这些数据属于什么位置.商家可以根…
前言:还记得那是2018年的一个夏天,天气特别热,我一边擦汗一边听领导大刀阔斧的讲述自己未来的改革蓝图.会议开完了,核心思想就是:我们要搞一个数据大池子,要把公司能灌的数据都灌入这个大池子,然后让别人用 各种姿势 来捞这些数据.系统从开始打造到上线差不多花了半年多不到一年的时间,线上稳定运行也有一年多的时间.今天想简单做个总结. 一.背景介绍 公司成立差不多十五六年了,老公司了.也正是因为资格老,业务迭代太多了,各个业务线错综复杂,接口调用也密密麻麻.有时候A向B要数据,有时候B向C要接口,有时…
为什么用Bulk load? 批量加载数据到HBase集群,有很多种方式,比如利用 HBase API 进行批量写入数据.使用Sqoop工具批量导数到HBase集群.使用MapReduce批量导入等等,但是这些方法都有一个问题:导入数据的过程如果数据量过大,可能耗时会比较严重或者占用HBase集群资源较多(如磁盘IO.HBase Handler数等) 使用 HBase BulkLoad的方式来进行海量数据批量写入到HBase集群,可以对大数据量的情况下做一些优化,提高性能. 在使用BulkLoa…
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6627857018461880836/ 系统版本,Hadoop已安装完成 Mysql安装完成 Hive版本 Sqoop版本 我们先开启hdfs.出现问题 查看日志,发现端口被占用 查看端口 找找是那个程序占用,我们安装lsof 没有找到问题 我们修改端口号 修改文件 修改内容 重启后依然有错误,我们将端口调回 这时候突然发现是权限的问题才看不到PID 把占用的端口都kill掉 重启又出现新的问题 我们停止hdfs…
hbase.rootdir 这个目录是region server的共享目录,用来持久化HBase.URL需要是'完全正确'的,还要包含文件系统的scheme.例如,要表示hdfs中的'/hbase'目录,namenode 运行在namenode.example.org的9090端口.则需要设置为hdfs://namenode.example.org:9000/hbase.默认情况下HBase是写到/tmp的.不改这个配置,数据会在重启的时候丢失. 默认: file:///tmp/hbase-${…
1.数据样式 写入之前,需要整理以下数据的格式,之后将数据保存到hdfs中,本例使用的样式如下(用tab分开): row1 N row2 M row3 B row4 V row5 N row6 M row7 B 2.代码 假设要将以上样式的数据写入到hbase中,列族为cf,列名为colb,可以使用下面的代码(参考) package com.testdata; import java.io.IOException; import org.apache.hadoop.conf.Configurat…
1.为何要 BulkLoad 导入?传统的 HTableOutputFormat 写 HBase 有什么问题? 我们先看下 HBase 的写流程: 通常 MapReduce 在写HBase时使用的是 TableOutputFormat 方式,在reduce中直接生成put对象写入HBase,该方式在大数据量写入时效率低下(HBase会block写入,频繁进行flush,split,compact等大量IO操作),并对HBase节点的稳定性造成一定的影响(GC时间过长,响应变慢,导致节点超时退出,…
bulk-load的作用是用mapreduce的方式将hdfs上的文件装载到hbase中,对于海量数据装载入hbase非常有用,参考http://hbase.apache.org/docs/r0.89.20100621/bulk-loads.html: hbase提供了现成的程序将hdfs上的文件导入hbase,即bulk-load方式.它包括两个步骤(也可以一次完成): 1 将文件包装成hfile,hadoop jar /path/to/hbase.jar importtsv -Dimport…
在第一次建立Hbase表的时候,我们可能需要往里面一次性导入大量的初始化数据.我们很自然地想到将数据一条条插入到Hbase中,或者通过MR方式等. 但是这些方式不是慢就是在导入的过程的占用Region资源导致效率低下,所以很不适合一次性导入大量数据. 本文将针对这个问题介绍如何通过Hbase的BulkLoad方法来快速将海量数据导入到Hbase中. 总的来说,使用 Bulk Load 方式由于利用了 HBase 的数据信息是按照特定格式存储在 HDFS 里的这一特性,直接在 HDFS 中生成持久…
1:为什么大批量数据集写入Hbase中,需要使用bulkload BulkLoad不会写WAL,也不会产生flush以及split. 如果我们大量调用PUT接口插入数据,可能会导致大量的GC操作.除了影响性能之外,严重时甚至可能会对HBase节点的稳定性造成影响.但是采用BulkLoad就不会有这个顾虑. 过程中没有大量的接口调用消耗性能 可以利用spark 强大的计算能力 上面是一个总的执行流程图, 数据生成,HFile转换以及HFile加载, 下面是HFile 的格式, 就是个key val…
我们在<通过BulkLoad快速将海量数据导入到Hbase[Hadoop篇]>文中介绍了一种快速将海量数据导入Hbase的一种方法,而本文将介绍如何在Spark上使用Scala编写快速导入数据到Hbase中的方法.这里将介绍两种方式:第一种使用Put普通的方法来倒数:第二种使用Bulk Load API.关于为啥需要使用Bulk Load本文就不介绍,更多的请参见<通过BulkLoad快速将海量数据导入到Hbase[Hadoop篇]>. 如果想及时了解Spark.Hadoop或者H…
1.简介 将数据插入HBase表中的方法很多,我们可以通过TableOutputFormat以Mapreduce on HBase的方式将数据插入,也可以单纯的使用客户端API将数据插入.但是以上方法效率并不高. 而使用BulkLoad特性能够利用MR计算框架将源数据直接生成内部的hfile格式,然后可以在不重启HBase集群的场景下数据load到对应表中. BulkLoad方法能够将数据快速的load到HBase中,打一个“生动”的比方: 使用API就好比将饭一口一口喂给HBase,而使用Bu…
导入数据最快的方式,可以略过WAL直接生产底层HFile文件 (环境:centos6.5.Hadoop2.6.0.HBase0.98.9) 1.SHELL方式 1.1 ImportTsv直接导入 命令:bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv Usage: importtsv -Dimporttsv.columns=a,b,c <tablename> <inputdir> 测试: 1.1.1在HBase中创建好表 c…
在第一次建立Hbase表的时候,我们可能需要往里面一次性导入大量的初始化数据.我们很自然地想到将数据一条条插入到Hbase中,或者通过MR方式等.但是这些方式不是慢就是在导入的过程的占用Region资源导致效率低下,所以很不适合一次性导入大量数据.本文将针对这个问题介绍如何通过Hbase的BulkLoad方法来快速将海量数据导入到Hbase中. 总的来说,使用 Bulk Load 方式由于利用了 HBase 的数据信息是按照特定格式存储在 HDFS 里的这一特性,直接在 HDFS 中生成持久化的…
HBase的BulkLoad有两种方式: thinrow的机制是flatmap把cell的信息进行flatmap:适合少于1万列的数据集:thinrow的涵义就是少行多列: bulkload的机制则是flatmap的是行,把行在拆分为cell是在map里面做的.适合多余1万列的数据集. Basic和ThinRows的机制其实类似,但是接收的数据格式不一样,前者接受的是一个二元组ListSeq((keyFamilyQualifier, value)):其中KeyFamilyQualifier(包括…
我们知道,在第一次海量数据批量入库时,我们会选择使用BulkLoad的方式. 简单介绍一下BulkLoad原理方式:(1)通过MapReduce的方式,在Map或者Reduce端将输出格式化为HBase的底层存储文件HFile.(2)调用BulkLoad将第一个Job生成的HFile导入到相应的HBase表中. ps:请注意(1)HFile方式是全部的载入方案里面是最快的,前提是:数据必须第一个导入,表示空的!假设表中已经有数据,HFile再次导入的时候,HBase的表会触发split切割操作.…