好久,好久没有写个博客了,自从上次封闭开始,到“自闭”,有了一段时间了,哈哈^_^ 、

多亏了云桌面的歇菜, 一下午啥都干不了, 突然想到,好久没有写点啥了,就写的,让时间流走有点痕迹吧 _(:з」∠)_

之前,做过一个小工具,就是将一个文件中的数据,插入的hbase中, 将其简单阐述一番,多少记一点吧,要不在过一段时间都忘了。

插入到hbase中,有很多中选择,java的方式是可以的,但是做一个脚本,没有必要,操作起来不方便,还得编译,.... ,

选择shell或python的方式,是个方便的选择,反正是个小工具,有可能会随时调整 ,而且linux是自带的Python环境

要用Python脚步的方式插入到hbase,参考hbase的官方文档。

查看hbase Reference Guide, 里面介绍内容很多,包括很多入门操作说明等。
   本次,主要是查看了如何更好的利用Python脚步插入到hbase中。
   由于hbase是java写的,要用Python去执行查询插入数据到hbase中,是有两种方式走,

  • 一种是利用thrift的方式,作为python和java中间翻译层,进行操作hbase的方式;
  • 还有个方法,就是用Python包装一层linux shell方式, 用hbase shell的方式操作hbae。

由于要用thrift方式,是需要开启服务,需要往Python安装其他第三方类库,增加运维人员负担,最后尝试后采用第二中方法。

用hbase shell 的方式,

  1. 使用Hbase Put API
  2. 使用Hbase批量加载工具
  3. 自定义的MapReduce job

这几种HBase数据导入方式(不推荐使用)
   理由:

  • 这三种方式都涉及到Put内置,大多数数据迁移到hbase场景,目前只是简单直接获取表结构和插入数据,使用单线程,这种效果非常慢,还得自己去写多线程完成,这样还是增加工作量和复杂度。

最后,查询官方文档后,得知ImportTsv是HBase官方提供的基于Mapreduce的批量数据导入工具。
   同时ImportTsv是Hbase提供的一个命令行工具,可以将存储在HDFS上的自定义分隔符(默认\t)的数据文件,通过一条命令方便的导入到HBase表中,对于大数据量导入非常实用。
   这种方式,是将要插入数据写放到HDFS上,这样保证数据不丢失,多份数据,然后开启MapReduce的方式,插入到hbase。当执行10w条数据插入没有问题,但100w的数据插入就会出现丢失情况。
解决方案是先用ImportTsv生成HFile,然后在用bulkload 的方式将HFIle导入到hbase的里面。

总结:
多看hbase的官方文档,但也要多搜索一下国内大牛写的博客,毕竟有人实际过,少尝试一些方法。

若您看到后,会用什么方式,可以留言讨论。

O(∩_∩)O哈哈~ 刚看了一下,云桌面好了,干活了!

转载于:https://www.cnblogs.com/nucdy/p/10931536.html

往hbase插入数据,你会选择哪种?相关推荐

  1. hbase插入数据语句_记一次 spark thriftserver 插入数据到hbase 的异常

    Spark2.4.3 Hbase1.2.6 Hive2.3.7 Hadoop2.7.7 $SPARK_HOME/jars 添加如下jar ln -s $APP_PATH/hive/lib/mysql- ...

  2. 批量插入数据到mysql_批量插入数据到 MySQL的几种方式

    packagecom.sb.test;import java.sql.*;importjava.util.Random;/*** 批量操作+事务提交 **/ public classJdbcInser ...

  3. 在PPT中插入数据透视表(数据透视图)

    在PPT制作过程中,有时需要插入EXCEL中常用的数据透视表(数据透视图) 下面说一下方法:(以office2007为例) 首先,在EXCEL中选中要进行数据分析的数据区域,并定义区域名称.这里我们取 ...

  4. 关于数据库中有自增主键时如何插入数据?

    这里以一张user表为例,id为自增的. CREATE TABLE `user` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `username` varc ...

  5. 三种批量插入数据的方法

    批量插入数据 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server ...

  6. MySQL(一) Python操控mysql批量插入数据

    在Python中,通过pymysql模块,编写简短的脚本,即方便快捷地控制MySQL数据库 一.连接数据库 使用的函数:pymysql.connect 语法:db=pymysql.connect(ho ...

  7. Mybatis批量插入数据的两种方式

    总体描述 软件开发过程中需要批量插入数据的场景有几种: 从离线文件(excel, csv等)导入大批量数据到系统. 从其它系统定时或者人工同步大批量数据到系统. 程序自身的某些算法执行时会生成大批量数 ...

  8. 在Linux中通过shell脚本向oracle数据库插入数据

    通过shell脚本向oracle数据库插入数据 思路 实现 shell脚本 数据文件 测试 思路 如何通过shell脚本更新数据库数据?要解决这个问题,首先,我们需要在脑中回忆一下我们通常是如何更新数 ...

  9. sql-批量插入数据脚本

    批量插入数据脚本 1.第一种批量插入数据脚本. 可以基本满足要求.理解上较为简单,所以这个最常用. DECLAREmaxnumber CONSTANT INT := 5000;--插入5000条数据i ...

最新文章

  1. Texture Inspection 纹理检验halcon算子,持续更新
  2. android系统中与内存有关的文件及路径
  3. oracle11g服务端配置实例,Win7系统Oracle11g服务端和客户端连接数据库配置
  4. vba listbox 内容输出到文本_利用FSO对象读取文本文件的信息
  5. Quartus17运行仿真RTL Simulation
  6. poj 1459-Power Network解题报告
  7. 25本《Python+TensorFlow机器学习实战》免费包邮到家!
  8. 消息中间件的研究 (一)
  9. 汉字常用字unicode码表
  10. 小程序二维码海报生成
  11. 各种音视频编解码学习详解之 编解码学习笔记(九):QuickTime系列
  12. 计算机图形学【GAMES-101】12、相机(视场、曝光、光圈(F-Stop)、薄棱镜近似、CoC、景深)
  13. Android自定义SwitchButton左右滑动开关按钮控件
  14. python arp断网攻击_arp断网攻击,教您arp断网攻击怎么解决
  15. 阿里达摩院/字节后端研发一面凉面经
  16. 如何在我的应用启动界面实现「开屏广告」?
  17. 数字图像处理复习(part1)
  18. UDP/ICMP协议简介
  19. Rocket Launching: A Universal and Efficient Framework for Training Well-performing Light Net论文阅读
  20. Object转boolean类型,Object转int类型,打包报错,提示:object找不到int

热门文章

  1. docker如何安装vim和yum命令?
  2. iOSQuart2D绘图之UIImage简单使用
  3. Python学习札记(十一) Function2 函数定义
  4. Java多线程基础篇(02)-多线程的实现
  5. HDSF主要节点解说(二)工作原理
  6. RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法
  7. 《Android开发从零开始》——26.数据存储(5)
  8. c#打开数据库连接池的工作机制_它是谁?一个比 c3p0 快 200 倍的数据库连接池!...
  9. java并发编程LockSupport讲解
  10. arcface和cosface