采用hive自带的方法生成Hfile,并将上亿大数据量导入HBASE

2023-11-14

采用hive自带的方法生成Hfile,并将上亿大数据量导入HBASE

1.0引入Hbase自带的jar

由于采用CDH6.1的版本,hive直接使用Hbase方法会出现异常,hive采用hbase的方法,故需要将对应Hbase中的数据引用进来。
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-annotations-2.1.0-cdh6.3.1.jar                      ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-client-2.1.0-cdh6.3.1.jar                           ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-common-2.1.0-cdh6.3.1.jar                           ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-endpoint-2.1.0-cdh6.3.1.jar                         ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-examples-2.1.0-cdh6.3.1.jar                         ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-external-blockcache-2.1.0-cdh6.3.1.jar              ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-hadoop2-compat-2.1.0-cdh6.3.1.jar                   ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-hadoop-compat-2.1.0-cdh6.3.1.jar                    ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-http-2.1.0-cdh6.3.1.jar                             ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-it-2.1.0-cdh6.3.1.jar                               ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-mapreduce-2.1.0-cdh6.3.1.jar                        ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-metrics-2.1.0-cdh6.3.1.jar                          ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-metrics-api-2.1.0-cdh6.3.1.jar                      ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-procedure-2.1.0-cdh6.3.1.jar                        ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-protocol-2.1.0-cdh6.3.1.jar                         ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-protocol-shaded-2.1.0-cdh6.3.1.jar                  ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-replication-2.1.0-cdh6.3.1.jar                      ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-resource-bundle-2.1.0-cdh6.3.1.jar                  ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-rest-2.1.0-cdh6.3.1.jar                             ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-rsgroup-2.1.0-cdh6.3.1.jar                          ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-server-2.1.0-cdh6.3.1.jar                           ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-shaded-miscellaneous-2.2.1.jar                      ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-shaded-netty-2.2.1.jar                              ;
add jar /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/hbase/lib/hbase-shaded-protobuf-2.2.1.jar                           ;

2.0建Hfile表

  我们采用HIVE指定文件存放格式的基本方法,将数据直接插入HIVE表中。HIVE 建表语句为:
create table tmp.ODS_PRODC_CONTRACT_STATE_HFILE(
 KEY STRING COMMENT 'HBASE_ROWKEY'
,iid STRING COMMENT '主键'
,pid STRING COMMENT '本次包ID'
,fid STRING COMMENT '本次文件ID'
,upload_date STRING COMMENT '批次日期'
,create_time STRING COMMENT '记录生成时间'
......
)
STORED AS
INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.hbase.HiveHFileOutputFormat'
TBLPROPERTIES ('hfile.family.path' = '/user/hive/warehouse/ods.db/hive-hbase/ODS_PRODC_CONTRACT_STATE_HFILE2/record');

注意:此处的record应该与HBase中的family相同。

insert overwrite  table tmp.ODS_PRODC_CONTRACT_STATE_HFILE
SELECT key
  ,iid
  ,pid
  ,fid
  ,upload_date
  ,create_time
......
FROM tmp.ods_prodc_contract_state10w order by  key
;
 插入相关数据之后可以在对应的HDFS中查看相关文件是否存在。
 直接查询该表会发现没有相关数据。这里的第一个字段会默认为Hbase的KEY,但是这里的key的名称可以不为key,其他的也可以。还有数据中不允许存在同样的KEY,如果出现同样的KEY会报错。同时KEY的值应当具有顺序,如果顺序不同也会出错。

3.0将数据导入Hbase中

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /user/hive/warehouse/ods.db/hive-hbase/ODS_PRODC_CONTRACT_STATE_HFILE ODS_PRODC_CONTRACT_STATE_HIVE
 注意这里的路径应当去掉列族,也就是去掉record。否则会出现无法找到有效列族,导致数据无法录入。
  录入数据:

在这里插入图片描述
查看数据量
在这里插入图片描述
注意:执行加载的指令后,原来HFILE会被转移,再次LOAD会发现没有对应文件。
在这里插入图片描述
亲测有效。
最终花费了半天的时间将77亿条HIVE数据迁移到了Hbase中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

采用hive自带的方法生成Hfile,并将上亿大数据量导入HBASE 的相关文章

随机推荐

  • 腾讯云服务器标准型S5、S4、S3、S2区别及怎么选择?

    腾讯云标准型服务器包括S2 S3 S4实例 这些实例都是标准型服务器 那么S2 S3 S4 S5区别在哪里呢 在这一块选择的时候新手会有很多犹豫 看上去型号都差不多 配置里面很多参数也看不懂 到底怎么选呢 接下来带大家去看看详细情况 腾讯云
  • VS code 插件配置手册

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 VS code 插件配置手册 C C Tools插件 C C 支持安装库文件的配置GDB本地调试配置GDB远程调试配置Remote VSCode插件 远程编辑文件安装环境
  • VCPKG 包下载失败解决思路

    vcpkg经常会遇到资源无法访问 可能是域名解析出了问题 我们只需要将域名解析后的ip地址添加到hosts文件列表中可解决此问题 如 185 199 108 133 raw githubusercontent com 在此之前可先通过终端p
  • spring-boot-starter家族成员简介

    应用程序starters 以下应用程序starters是Spring Boot在org springframework boot组下提供的 springboot使用指南https docs spring io spring boot doc
  • Transforms的使用

    Transforms是常用的图像预处理方法 提高泛化能力 其实是一个py文件 其中包含了totensor 将数据类型转换成tensor类型 resize等工具 tensor数据类型 通过Transforms totensor去看两个问题 1
  • Linux 的 anaconda 虚拟环境下安装指定的 cuda、cudnn、pytorch

    感悟 首先 anaconda 的虚拟环境真香 开辟一个新的虚拟环境 很多环境 版本不兼容的问题都不复存在 尤其对复现别人代码的同学很有用 条件 只要安装的版本不超过自己机器的硬件条件 那么就可以安装 步骤 1 确定安装的 cuda 版本 在
  • springBoot+scheduling实现多任务动态定时任务

    使用spring自带的scheduling定时调度任务相当于轻量级的Quartz 但是不支持分布式 若要实现分布式定时任务就得使用Quartz了 第一步 在入口类中声明定时任务 import org springframework boot
  • java中比较两个map是否相同

    结论 对于所有继承于AbstractMap的map类 基本上jdk中的map都继承了 直接使用Map equals 即可 源码解析 AbstractMap重写了equals方法 保证对两个相同内容的map调用equals比较结果为真 源码如
  • opencv之人脸检测项目实战(二)

    自我介绍 目录 一 人脸检测整体架构 1 1 什么是人脸检测 1 2 人脸检测的应用场景 1 3 人脸检测核心架构 二 人脸检测实现技术储备 2 1 NDK开发的原理 2 2 什么是JNI 2 3 OpenCV架构体系 三 人脸识别项目实战
  • vue-cli打包

    创建vue config js文件 设置不同模式的打包入口 把main js文件删除 创建main prod js和main dev js module exports chainWebpack config gt 判断当前的编译模式 设置
  • 【python】统计代码行数

    背景 写了一堆 cs文件 想看看一共写了多少行 代码 import os import chardet Check if a file has the given extension def has extension file exten
  • 模型转换、模型压缩、模型加速工具汇总

    目录 一 场景需求解读 二 模型转化工具汇总 1 模型转换工具的作用 2 模型转换工具简介 1 MMdnn 2 ONNX 3 X2Paddle 三 模型压缩和加速工具汇总 1 模型压缩加速工具的作用 2 模型压缩加速工具简介 1 Pocke
  • 计算方法--解线性方程组的迭代法

    文章目录 雅可比迭代法 Jacobi 迭代公式的矩阵形式 编程计算公式 迭代思路 高斯 赛德尔迭代法 Gauss Seidel 迭代法的收敛性 迭代法收敛性基本定义 收敛速度 迭代法充分条件1 迭代法充分条件2 迭代法其他收敛条件 JOR迭
  • 如何使UI自动化项目成功?

    目标 错误的目标 追求一些错误的目标 会使自动化测试走向失败 1 替代手工测试 自动化无法替代手工测试 只能作为辅助手段 在如图的第二象限起作用 2 高比率的UI测试覆盖率 不是覆盖率越高越好 由测试金字塔来看 底端占比越高 自动化效率越好
  • 学前端开发适用于移动端常见的问题

    常见问题1 移动端如何定义字体font family三大手机系统的字体 ios 系统默认中文字体是Heiti SC默认英文字体是Helvetica默认数字字体是HelveticaNeue无微软雅黑字体android 系统默认中文字体是Dro
  • 快排的非递归实现

    快排的非递归 这里我们需要借助数据结构的栈模拟快排的递归过程 栈先进后出 实现思想 1 先将需要排序的区间入到栈中 2 栈不为空时 将需要排序区间读取出来 进行单趟排序 获得了key位置 判断key左右区间是否存在 若存在 将左右下标数据入
  • ORA-28009: 应当以 SYSDBA 身份或 SYSOPER 身份建立 SYS 连接

    用 SQL Plus 连接数据库的时候 除了用户名和密码外 还要在口令后面加一个主机字符串 如下 请输入用户名 sys 口令 ANKoracle123 orcl as sysdba 转载于 https www cnblogs com ann
  • 局部自适应阈值分割方法

    github地址 https github com radishgiant ThresholdAndSegment git Local Yanowitz 由于光照的影响 图像的灰度可能是不均匀分布的 此时单一阈值的方法分割效果不好 Yano
  • 深入理解计算机系统第三版第二章答案

    练习题2 13 分析 bis 和bic都是可以看作系统已经提供好的函数 所以可以用and or not 组合设计 bis x m 置数 作用 在x这个二进制串中把m中为1的位置全部变成0 m中为0的 不变 可以看到bis x m 结果和x
  • 采用hive自带的方法生成Hfile,并将上亿大数据量导入HBASE

    采用hive自带的方法生成Hfile 并将上亿大数据量导入HBASE 1 0引入Hbase自带的jar 由于采用CDH6 1的版本 hive直接使用Hbase方法会出现异常 hive采用hbase的方法 故需要将对应Hbase中的数据引用进