leixingbang1989
大邦
2014-12-29 07:22
采纳率: 100%
浏览 5.9k
已采纳

如何将存储量很大的txt文档数据导入到hbase当中

我现在要写一个程序,将第三方导出的txt文件内容读取并放到hbase当中。
由于txt文档非常大(超过10G),我初步思路是通过单线程读取到一个线程安全的容器当中,然后再利用多线程向hbase中写入。
请问有没有什么更好的思路,谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • wzhg0508
    joeywen 2014-12-29 15:32
    已采纳

    方案一:
    1、在Linux环境利用split命令把文件分块;
    2、多线程对多文件读取写入HBase
    方案二:
    1、要看文件的格式是怎么样的,你想存HBase的格式怎样的
    2、把文件按照格式分割建表存入Hive
    3、利用HiveIntegrate 工具把Hive映射到HBase 表
    方案三:
    1、HBase现已支持MapReduce,把文件先load到HDFS,利用命令:hdfs fs -copyFromLoad xxx xxxxxx
    2、编写MapReduce程序,读取存入HDFS的文件,程序会自动split文件,然后有多个mapper读取
    然后在reduce中把数据写入hbase。

    点赞 评论
  • oyljerry
    oyljerry 2014-12-29 07:37
    1. 分块读取文件
    2. 用内存映射文件方式读取文件,效率比较高
    3. 一个线程把内存数据写入hbase
    点赞 评论
  • lovesmiles
    勤奋的小游侠 2014-12-29 07:47

    有容器能放得下10G的数据?
    1把文件分成小文件
    2把小文件按正常的方法读写。

    点赞 评论
  • leixingbang1989
    大邦 2014-12-29 08:17

    分块读取文件是指什么?
    2.文件超过2g后,使用内存映射就不可以了。

    点赞 评论

相关推荐