spark 大量数据读写问题?

问答 ruiqi ⋅ 于 2018-02-22 22:01:25 ⋅ 最后回复由 青牛 2018-02-23 12:02:42 ⋅ 4215 阅读

我们数据存储用的hbase ,然后 key 最多可能有40亿个 ip+端口构成,每次数据库中读取然后处理 修改其中的列族中的数据在插入回hbase 中 ,用javaapi再办个小时内处理不完,而且有时候还出现读取超时,甚至导致hbase 挂掉的情况,请问 这个读取和插入有没有好的方式呢?

附言 0  ·  2018-02-22 22:01:54

读取使用的scan全盘扫描

附言 1  ·  2018-02-22 22:34:15

还有个就是 我们读取的那个表 每5分钟更新下数据 。数据量在600万左右

附言 2  ·  2018-02-22 22:34:40

是不是应该把这个大批量读写的 列族 分成两个表呢?

回复数量: 9
  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-02-22 23:39:48

    你这么设计rowkey会造成数据的倾斜吧?建表的时候做预分region了吗?
    目前你这张表只能优化优化regionserver的jvm参数,让垃圾回收速度快点

  • ruiqi
    2018-02-22 23:41:43

    @青牛 ip都转换成long型存储了。通过数据扫描看 倾斜不是很严重。不过 处理一段时间就容易造成hbase 崩溃。造成锁表了

  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-02-22 23:46:13

    @ruiqi 把regionserver的GC日志dump出来看看GC时间

  • ruiqi
    2018-02-22 23:47:57

    @青牛 记得在ui页面看gc时间在1s左右。

  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-02-22 23:50:49

    @ruiqi 你们要是没做过优化的话,绝对不会是1S的。那个页面是没等你看到GC时间变长,regionserver就挂了

  • ruiqi
    2018-02-22 23:52:03

    @青牛 哦哦。这样子明天再看看。有问题再问您哈。多谢这么晚了还在回答问题。

  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-02-22 23:55:15

    @ruiqi 程序猿都是夜猫子

  • ruiqi
    2018-02-23 11:32:44

    @青牛 你好 我又来麻烦您了。还是昨天的问题哈。 我看了下。我们程序当时没有做region 预分区。总ip数 总量最多40亿个。若果想做region预分区,这种应该用形式的比较好呢?

  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-02-23 12:02:42

    @ruiqi 是的,但是你要重弄表了,把region分多点,然后改成手动分region

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter