开发者社区> 问答> 正文

如何批量向hbase中插入数据

如何批量向hbase中插入数据呀,我用thrift批量插数据,插入四百多万条数据要半小时?

展开
收起
hbase小能手 2019-04-04 11:23:37 5591 0
2 条回答
写回答
取消 提交回答
  • 目前hadoop社区有一套bulkload到hbase的工具,原理是使用mr或者spark并行的生成hfile存储在hdfs,然后调用hbase的bulkload直接把这些hfile加载到hbase表。代码参考:

    val hConf = HBaseConfiguration.create()
    hConf.addResource("hbase-site.xml")
    val hTableName = "test_log"
    hConf.set("hbase.mapreduce.hfileoutputformat.table.name", hTableName)
    val tableName = TableName.valueOf(hTableName)
    val conn = ConnectionFactory.createConnection(hConf)
    val table = conn.getTable(tableName)
    val regionLocator = conn.getRegionLocator(tableName)
    
    val hFileOutput = "/tmp/h_file"
    
    output.saveAsNewAPIHadoopFile(hFileOutput,
      classOf[ImmutableBytesWritable],
      classOf[KeyValue],
      classOf[HFileOutputFormat2],
      hConf
    )
    
    val bulkLoader = new LoadIncrementalHFiles(hConf)
    bulkLoader.doBulkLoad(new Path(hFileOutput), conn.getAdmin, table, regionLocator)
    
    2020-03-21 15:20:01
    赞同 展开评论 打赏
  • HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。阿里云HBase技术团队共同探讨HBase及其生态的问题。

    量数据批量写入hbase时,建议mr或者spark生成hfile后使用BulkLoad 方式导入hbase数据库

    2019-07-17 23:32:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据时代的存储 ——HBase的实践与探索 立即下载
Hbase在滴滴出行的应用场景和最佳实践 立即下载
阿里云HBase主备双活 立即下载