千家信息网

hbase导数据的几种方式

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,  这里小编介绍两种导入数据的方式,一种是基于hive,一种是基本文件生成HFile。1. hive-hbase-handler 导数据这种方式需要一个jar包支持:下载地址:https://down
千家信息网最后更新 2026年11月01日hbase导数据的几种方式

  这里小编介绍两种导入数据的方式,一种是基于hive,一种是基本文件生成HFile。

1. hive-hbase-handler 导数据

这种方式需要一个jar包支持:
下载地址:https://down.51cto.com/data/2464129
将其放入$HBASE_HOME/lib 并将原有的jar包复制。
其次修改hive-site.xml:

#加入:hive.aux.jars.pathfile:///applications/hive-2.3.2/lib/hive-hbase-handler.jar,file:///applications/hive-2.3.2/lib/guava-14.0.1.jar,file:///ap    plications/hbase-2.0.5/lib/hbase-common-2.0.5.jar,file:///applications/hbase-2.0.5/lib/hbase-client-2.0.5.jar,file:///application    s/hive-2.3.2/lib/zookeeper-3.4.6.jarhbase.zookeeper.quorumhadoop01:2181,hadoop02:2181,hadoop03:2181

将hive数据导入到hbase中:
① 创建hive表:

create table hive_hbase_test(id int,name string,age int);

② 插入数据到hive表中

insert into hive_hbae_test(id,name,age) values(1,"xiaozhang","18"); insert into hive_hbase_test(id,name,age) values(2,"xiaowang","19");

这里测试环境可以这样插入数据,真实环境最好使用外表。
③ 映射 Hbase 的表

create table hive_hbase_pro(row_key string,id bigint,name string,age int) STORED BY "org.apache.hadoop.hive.hbase.HBaseStorageHandler" WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:id,info:name,info:age") TBLPROPERTIES ("hbase.table.name"="hive_hbase_pro");

此时在hbase中就会创建一个名为hive_hbase_pro表。

④ 插入到映射 Hbase 表中的数据

#在hive中配置如下参数:set hive.hbase.wal.enabled=false;set hive.hbase.bulk=true;set hbase.client.scanner.caching=1000000;

⑤导入数据:

insert overwrite table hive_hbase_pro select id as row_key,id,name,age from hive_hbase_test;

此时在hive表中就有hive中的数据:

补充:如果hbase中表已经存在,此时hive中只能建立外表:

create external table hive_hbase_xiaoxu(row_key string,id bigint,name string,age int) STORED BY "org.apache.hadoop.hive.hbase.HBaseStorageHandler" WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:id,info:name,info:age") TBLPROPERTIES ("hbase.table.name"="hive_hbase_pro");

这时建立的外表可以读取到hbase表中的数据。

  总结:这种方式中插入数据是按照一条一条的的形式插入的,速度是比较 慢的,如果数量级在百万千万级别机器比较好的情况下可以使用这种方式,执行的速度大概 在每秒 2-3W 之间。
其中还有Phoneix 和pig的导数,感觉和hive都大同小异,这里就不在介绍。

2. Bulkload 方式导数据

这种方式导入数据相当的快,因为跳过了WAL直接生产底层HFile文件。
优势:

  • BulkLoad 不会写 WAL,也不会产生 flush 以及 split。
  • 如果我们大量调用 PUT 接口插入数据,可能会导致大量的 GC 操作。如果没有对 Hbase 的表进行预分区,会导致单机器的热点问题,严重时甚至可能会对 HBase 节点的稳定性造成影响,采用 BulkLoad 无此顾虑。
  • 过程中没有大量的接口调用消耗性能。
    步骤:
    ① 将数据文件上传到HDFS中:
    下载地址:https://down.51cto.com/data/2464129
    这里文件内容是以逗号分隔。

    $hadoop fs -put sp_address.txt /tmp/sp_addr_bulktable

② 利用 importtsv 命令生成 Hfile 文件

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.bulk.output=/tmpbulkdata/sp_addr_data -Dimporttsv.columns=HBASE_ROW_KEY,sp_address:ID,sp_address:PLACE_TYPE,sp_address:PLACE_CODE,sp_address:PLACE_NAME,sp_address:UP_PLACE_CODE sp_address_bulkload "/tmp/sp_addr_bulktable"

参数介绍:
-Dimporttsv.separator :指定文件的分隔符
Dimporttsv.bulk.output:生成的HFile的目录(此目录一定不存在)
Dimporttsv.columns:hbase表的关系映射
sp_address_bulkload :hbase表名(这里一定要在生成hfile之前创建hbase表)
"/tmp/sp_addr_bulktable":源数据目录

**建表语句:**create 'sp_address_bulkload',' sp_address'

③ 把 Hfile 文件导入到 Hbase 中

$hadoop jar /applications/hbase-2.0.5/lib/hbase-mapreduce-2.0.5.jar completebulkload  /tmpbulkdata/sp_addr_data/ sp_address_bulkload

这里有一个坑,网上说是在hbase-server-VRESION-hadoop2.jar 这里小编用的是2.0.5版本的,这个completebulkload 主类在hbase-mapreduce-2.0.5.jar 这个jar包下。
好处:运行该命令的本质是一个hdfs的mv操作,并不会启动MapReduce。

④ 查看hbase表

$scan 'sp_address_bulkload'


到此数据就被装载进入hbase中。
  当然还可以使用API的方式,但是学习成本就会翻倍,如果场景不是特别复杂的情况下,使用shell基本可以解决。
  总结:这种方式是最快的,原理是按照 Hfile 进行的,一次性处理多条数据,建议使用这种方式。在真是环境中会 相当快的快,我们测试的是 4 亿多条的数据,20 分钟搞定。可能这里看不出什么快不快,这里小编可以提供一个真实情况,256G内存的机器中,用sqoop导入5000W数据需要27分钟。

数据 方式 文件 生成 外表 情况 环境 目录 参数 命令 地址 多条 接口 机器 速度 测试 复杂 最快 大同小异 一次性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 互联网科技工作委员会毛军 互联网金融监管科技数据 与互联网科技公司 互联网女皇 腾讯科技 互联网科技创新企业排名 济南和联互联网科技有限公司 博兴的互联网电子科技公司 互联网科技实习生岗位职责 崇明区互联网教育科技诚信经营 互联网媒体平台算高科技产业 互联网科技扶贫时间 威龙国际互联网科技公司 恒生互联网科技业指数调整周期 北京市互联网新科技 厦门江牛科技互联网 宁波跨境商互联网科技有限公司 广州三三互联网科技有限公司 安徽零酒互联网科技有限公司 深圳互联网科技园地址 中智农互联网科技 互联网下的科技发展 关于新基建和互联网科技 互联网金融与金融科技 科技类公司包括互联网吗 科技大学互联网 元气玛特互联网科技公司是外包吗 领航科技大厦互联网公司 萌小萌互联网科技河南有限公司 利用互联网等科技手段
0