V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zpole
V2EX  ›  Hadoop

hadoop 可以两个集群之间做到每个节点之间一一对应实时同步么?

  •  
  •   zpole · 2016-08-31 10:40:25 +08:00 · 8026 次点击
    这是一个创建于 2990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有 a,b 两个集群。 a 接收流数据,然后每个节点都同步到 b 。

    a 的 1 节点新收的流同步到 b 的 1 , a 的 2 到 b 的 2 。。。依次类推

    然后a,b各自的修改也要能互相同步。

    就是说保证 a , b 的完全一致。

    每秒几亿条。延迟秒级。

    第 1 条附言  ·  2016-08-31 16:32:22 +08:00
    感谢各位了。然后很不幸的是。。。要求其实并没有那么高!(懵逼 ing )经理的话不可信啊。。。跟工程师交流了一下。其实需求是这样的:
    每秒大概几万条,峰值几十万条。几亿是数据的总量。
    两个数据集群要互相备份,分别跑不同的计算。并且当一边的计算量特别大时要能调度到另一边去跑。
    延时五分钟内。
    尼玛这跟之前说的完全不一样啊!
    现在各位有什么建议么?
    29 条回复    2017-09-15 14:02:10 +08:00
    1957704130
        1
    1957704130  
       2016-08-31 10:55:29 +08:00
    每秒几亿条,什么数据能到这个体量?
    xmoiduts
        2
    xmoiduts  
       2016-08-31 11:03:29 +08:00
    看起来可能是金融云解决方案
    zpole
        3
    zpole  
    OP
       2016-08-31 11:04:04 +08:00
    @1957704130 好像是金融还是银行的
    wander2008
        4
    wander2008  
       2016-08-31 12:02:31 +08:00 via iPhone
    给我 100w 我来给你解决
    wyntergreg
        5
    wyntergreg  
       2016-08-31 15:46:25 +08:00   ❤️ 1
    每秒几亿就算是银行也是银行总部大机级别的,这事没多少人能给你解决
    czheo
        6
    czheo  
       2016-08-31 15:55:00 +08:00   ❤️ 1
    其他不说, a,b 各自的修改也要能互相同步: a,b 同时修改 conflict 怎么解决?肯定要类似 cassandra 的 eventual consistency 机制。
    况且数据如何 replicate 到哪个 datanode 是是 balancer 自动控制的, a1 必须同步 b1 这种需求不理解啊。
    你这个构架难度太大,改构架吧。
    czheo
        7
    czheo  
       2016-08-31 15:57:54 +08:00
    仔细想想,你这构架完全是 mysql 思维啊
    ten789
        8
    ten789  
       2016-08-31 16:19:58 +08:00   ❤️ 1
    mysql 相互主从 呵呵了
    zpole
        9
    zpole  
    OP
       2016-08-31 16:51:33 +08:00
    @ten789 大概就是人家公司的某个项目想这样做,但想不到同步机制,然后经理就四处问,然后就到我这里了。我也不是很懂,就把经理说的夸大的需求发 v2 上了。现在跟工程师交流了下把需求改对了,但方案是人家的,也不想变。。。(我就是个小菜鸟,不要打我)(逃
    zpole
        10
    zpole  
    OP
       2016-08-31 16:54:37 +08:00
    @czheo 需求已改。现在您觉得这样做可行吗?不行的话架构可以怎么改?
    wmttom
        11
    wmttom  
       2016-08-31 17:21:45 +08:00   ❤️ 1
    合并成一个集群可破,存储层用一套,想要安全多开副本。感觉搞两个集群应该是为了计算资源隔离吧,但是搞一个集群也能想各种办法分配调度计算任务啊,没必要搞两个。
    zpole
        12
    zpole  
    OP
       2016-08-31 17:50:11 +08:00
    @wmttom 搞两个集群还有一个目的是一边挂掉了另一边可以跟上,保证应用的不掉线。如果只开一个集群可以做到这个要求么?怎么做?
    czheo
        13
    czheo  
       2016-08-31 19:00:34 +08:00
    @zpole 用两套集群也是浪费啊。请搜索 Hadoop High Availability , namenode 搞 active standby 就可以解决 single point of failure 。
    czheo
        14
    czheo  
       2016-08-31 19:06:52 +08:00
    你现在的思路完全是用 mysql 思维来用 Hadoop 啊,手动一个集群同步到另一个集群的做法在 Hadoop 下设置一个 replication factor 就解决了。高可用也只要解决 namenode 的 SPOF 就行了,遇到 job failure 大不了 retry 一下。
    wph95
        15
    wph95  
       2016-08-31 19:15:35 +08:00
    @czheo 他思路没问题 airbnb 就是这么搞的, airbnb 叫 gold && silve cluster 。 可以通过这个关键词去找文章
    wph95
        16
    wph95  
       2016-08-31 19:22:39 +08:00   ❤️ 1
    不说机器规模和配置,就只说需求。
    可以看看 ReAir ,觉得场景有点像
    // 几亿是数据的总量, 这量一点都不多。
    czheo
        17
    czheo  
       2016-08-31 20:20:03 +08:00
    @wph95 谢谢分享,有 reair 的话,说不定 lz 这需求还真能实现。
    defunct9
        18
    defunct9  
       2016-08-31 21:10:47 +08:00 via iPhone
    管过 600 节点 hadoop ,觉得在胡扯
    zpole
        19
    zpole  
    OP
       2016-08-31 21:21:51 +08:00
    @czheo 个人理解 active standby 里 standby 一般是不参与运算的,是用来受灾的时候恢复的。这个需求要两个数据中心双活,都能做运算。虽然有冗余但利用率更高。
    tinybaby365
        20
    tinybaby365  
       2016-08-31 21:58:32 +08:00 via iPhone
    只用一个集群,提高可用性。 Hadoop 设计的目的就是不让你有如此想法。
    czheo
        21
    czheo  
       2016-09-01 00:13:44 +08:00   ❤️ 1
    @zpole 你描述的双数据中心,技术难点在于 hadoop 集群的 replicate 和 sync , ls 已经有人有人给出 reair 这个轮子了,技术比较新,你调研下这个轮子的可行性。但是 airbnb 只做了单向的 replicate 和 sync ,和你描述的类似 circular replication 还是要再看看能不能像 mysql 一样手动回避 conflict 。
    ten789
        22
    ten789  
       2016-09-01 11:51:21 +08:00
    到底是异地容灾还是本地互备呢 异地的不会搞 本地的完全不需要 每一个数据块都分布在 n 个 datanode 上 而且 namenode 你可以再搞 m 个从
    zpole
        23
    zpole  
    OP
       2016-09-01 12:18:04 +08:00
    @ten789 是我没解释清楚。异地双活互备。
    ooonme
        24
    ooonme  
       2016-09-01 12:41:33 +08:00 via iPhone
    hdfs 本身是分布式 高容灾的,也支持机架感知。问题是你这是异地 , io 累死,况且异地灾备 是机房做的吧,业务还需要干预?这块不是很懂;谷歌的论文中提到他们的 GFS 支持多数据中心; but 一切大数据速度的基础是 数据不动代码动;数据跑到代码所在的机器成本得多高,几十 mb 的代码跑到数据所在的机器执行就容易多了。 v2 做大数据的人好少
    ooonme
        25
    ooonme  
       2016-09-01 12:43:12 +08:00 via iPhone
    @zpole hdfs 已经支持 ha ,放心吧。这些问题都已经被大公司解决了
    ten789
        26
    ten789  
       2016-09-01 18:14:23 +08:00
    @zpole 如果不存在 a b 之间的同步 数据源 直接发两份呗 如果 ab 之间的同步 这个难了
    ClassicOldSong
        27
    ClassicOldSong  
       2016-09-01 20:36:59 +08:00
    @zpole 说点题外话,刚刚补完石头门,然后看到了这个帖子标题里“实时”二字突然有一种奇异的感觉,点进来一看你的头像又是红莉栖。。。难道这真的是石头门的选择么 2333333333333333
    zpole
        28
    zpole  
    OP
       2016-09-01 21:20:23 +08:00
    @ClassicOldSong 这一切都是 Steins;Gate 的选择
    logo1907
        29
    logo1907  
       2017-09-15 14:02:10 +08:00 via iPhone
    可以尝试 Kafka mirror maker,点对点同步的需求需要用 kafka low level 的 consumer 接口自己实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:04 · PVG 03:04 · LAX 11:04 · JFK 14:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.