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

为啥大部分大数据框架都是 Java based

  •  1
     
  •   YuuuZeee · 2018-07-22 17:08:12 +08:00 · 8114 次点击
    这是一个创建于 2300 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如 Hadoop/各种 MQ/开源的 OLAP 引擎 Apache Kylin 系列。。。。

    萌新特别想理解=-=当然不是引战 单纯的好奇 写了一段时间的 python 感觉在语义上比 Java 好很多诶。。。

    41 条回复    2018-08-18 16:41:38 +08:00
    misaka19000
        1
    misaka19000  
       2018-07-22 17:11:06 +08:00
    当初大佬用 Java 写了,然后由于生态所以后面就偏 Java 了
    xhystc
        2
    xhystc  
       2018-07-22 17:14:17 +08:00 via Android   ❤️ 1
    不是 java 强而是写 java 的人和 jvm 强
    bombless
        3
    bombless  
       2018-07-22 17:15:38 +08:00 via Android
    Python 感觉只能比 java 差太多。就好比我记得 py2 的 True 在运算的时候就完全是个整数。不知道 py3 有没有改过来
    gabon
        4
    gabon  
       2018-07-22 17:17:05 +08:00 via Android
    Java 坑少
    Cbdy
        5
    Cbdy  
       2018-07-22 17:17:13 +08:00   ❤️ 1
    纠正一下,是 Java 平台,而 Java 平台足够好,上面有几十种语言,包括你说的 Python
    pabupa
        6
    pabupa  
       2018-07-22 17:30:44 +08:00
    Java 是强类型里面最适合的一种吧,可能~别的也没什么了呀。
    至于二楼,,,您真的是强呀~@xhystc
    C 和 C++不是这样吗?难道不是 Java 更奇怪吗?@bombless
    楼主说了不是引战,真的是……
    XIVN1987
        7
    XIVN1987  
       2018-07-22 17:32:50 +08:00
    Python 速度慢、耗内存更多,,不适合大数据!!
    billlee
        8
    billlee  
       2018-07-22 17:36:11 +08:00
    python 的动态类型,根本没法写大型项目,性能也不行

    大家都用 jvm 平台,主要还是一开始的 hadoop 是用 java 的,路径依赖吧
    asdfjklsc
        9
    asdfjklsc  
       2018-07-22 17:46:54 +08:00
    基础组件选用的语言一定是语法设计完备,实现健壮且高效可靠的。在具有这些特征的编程语言里,Java 是语法最简单的。跟 Java 比,Python 可能只有语法简单这个优点。
    lihongjie0209
        10
    lihongjie0209  
       2018-07-22 17:57:27 +08:00   ❤️ 3
    大数据 CPU bound, GIL 是没办法绕过去的.

    其次就是一些动态语言的工程问题了:
    1. 多人协作开发
    2. IDE 支持
    3. 打包部署 (python2/3)
    4. 成功且稳定的框架(提供统一的编码规范, 这个好像又回到了问题 1)

    这些问题在 python 中都没有统一的解决方案, 所以你懂得.

    Python 自由, 同一个问题每个人都是一套自己认为优雅的解决方案, 最后导致的问题就是:

    JAVA 可能有一套中庸的规范,但是大家都遵守.
    Python 可能有十套优雅的方案, 但是大家谁都不服谁.

    但是你如果让所有的 Python 程序员都遵守一套规范, 我估计总会有人站出来像骂 JAVA 一样骂 Python 不自由.
    murmur
        11
    murmur  
       2018-07-22 18:12:27 +08:00
    java 这个语言牛逼就牛逼在起名上 java 加瓦 添砖加瓦 说明 java 才是大数据的基石
    loveCoding
        12
    loveCoding  
       2018-07-22 20:01:28 +08:00
    生态好加上巨头的各种极致优化...
    Trim21
        13
    Trim21  
       2018-07-22 20:03:14 +08:00 via Android
    @murmur 那看来 Python 就是被拍死了…
    wdlth
        14
    wdlth  
       2018-07-22 20:14:41 +08:00
    @Trim21 拍疼
    cdwyd
        15
    cdwyd  
       2018-07-22 20:22:15 +08:00 via Android
    其实,真正的原因是:
    大牛能把 java 写的很好
    菜鸟瞎写写也能凑合用
    andyholo
        16
    andyholo  
       2018-07-22 20:30:48 +08:00
    那是人家 java 工程化做得好。python 黑魔法太多用来写大型软件就是灾难。讲真不仅仅是 python 任何技巧太多的语言都不适合来写大型软件,可维护没法和 java 比。非引战
    mmdsun
        17
    mmdsun  
       2018-07-22 21:14:08 +08:00 via Android
    动态一时爽,重构火葬场
    notreami
        18
    notreami  
       2018-07-22 21:30:29 +08:00
    嗯,我想知道 楼主感觉 python 什么地方的语义比 java 好?
    agagega
        19
    agagega  
       2018-07-22 21:34:09 +08:00
    听说 Google 里面很多这类设施是用 C++ 做的..但是想一想外面工程师水平参差不齐的情况下还是用 Java 吧
    bombless
        20
    bombless  
       2018-07-22 22:15:55 +08:00 via Android
    @pabupa 你们 py 的品味都这么差吗
    est
        21
    est  
       2018-07-22 23:11:38 +08:00
    java 系的大数据工具没有一个能打的。C++毫无悬念碾压 jvm 系全家。

    python 玩 db 引擎这种事是自不量力。golang 都悬。
    feverzsj
        22
    feverzsj  
       2018-07-22 23:22:46 +08:00
    真的海量大数据,核心还得靠 c++的,java 只能搞搞中小型的 data warehouse,而且 java 在容器领域水土不服,马上就要嗝屁
    lsmgeb89
        23
    lsmgeb89  
       2018-07-22 23:26:55 +08:00
    因为当初 Google 考虑再三没有开源他自家的黑科技,涉及到了 Google 的看家本领,如果开源了就没 Java 什么事了……
    yanaraika
        24
    yanaraika  
       2018-07-22 23:40:55 +08:00 via Android
    其实就是最早几个大佬抄 google 论文的时候用的是 Java,再加上刚好这几个大佬一开始用的是 Java。

    如果都像 google 那样能够招到某个领域最牛逼的一批人,估计都会用 c++写。当然这也和 google 用 c++传统有关。

    另一方面,以前觉得瓶颈在 i/o 所以用 Java 无所谓,这几年经过发展瓶颈又回到了 cpu,所以最新分布式的项目又渐渐用起 c++来了
    pabupa
        25
    pabupa  
       2018-07-23 00:27:03 +08:00
    @bombless ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
    luosuosile
        26
    luosuosile  
       2018-07-23 00:30:23 +08:00
    所以 c++是最好的语言?
    我再重申一遍,php 是世界上最好的语言?!!
    streamo
        27
    streamo  
       2018-07-23 01:44:13 +08:00 via Android
    @est 说性能 C++更好没问题,但至于 Java 不能打是怎么说?
    linus3389
        28
    linus3389  
       2018-07-23 03:44:09 +08:00
    人多,社区大
    030
        29
    030  
       2018-07-23 05:17:39 +08:00
    脚本🐶人多势众是这样的
    YuuuZeee
        30
    YuuuZeee  
    OP
       2018-07-23 08:20:36 +08:00 via Android
    诶…可是不觉得 Java 如果不用 ide 自己想办法配置环境的话很麻烦诶
    Allianzcortex
        31
    Allianzcortex  
       2018-07-23 08:21:43 +08:00   ❤️ 1
    @yanaraika 因为万兆网卡和 SSD 已经成主流,又变成了 CPU bound,但 Hadoop 系早都成了事实标准,所以就很难受
    ucanuup
        32
    ucanuup  
       2018-07-23 08:54:36 +08:00
    主要是因为,Java 有很多顶尖大佬组成了强大的委员会 JCP,他们的大部分工作就是制定规范,比如各种 JSR 标准。
    其他程序员只需要实现这些标准,事情就做好了。这样 各自实现的可以协同工作,或者被替换。

    这是我作为 C++程序员在学习 Java 时想到的,为什么 Java 如此强大。

    再回到你说的,Apache 基金会了解一下,都是大牛。

    Java 是在做行业解决方案,而 Python 更多的是作为胶水语言使用。
    est
        33
    est  
       2018-07-23 08:58:32 +08:00
    @streamo 因为 apache 下面几乎所有的基于 java 的,用 C++改写之后都是 3-5 倍的性能提升。几百倍的也有
    ucanuup
        34
    ucanuup  
       2018-07-23 09:07:03 +08:00
    @ucanuup 补充一句,就是规范为什么重要,试想没有规范会怎么样,你想实现功能,你需要想很多情况,并且还不能兼顾到所有的情况,你也没有这么多经验,这几乎是必然的。现实中,各人的水平还有高低,没有规范也无法协作。而规范是大佬们给你指明了需要做什么,都很清楚。
    lihongjie0209
        35
    lihongjie0209  
       2018-07-23 09:10:59 +08:00
    @est #33 比如说?
    ala2008
        36
    ala2008  
       2018-07-23 09:22:16 +08:00
    工程化,标准化,入门级别又不是 c++,so...
    hiddendeerer
        37
    hiddendeerer  
       2018-07-23 09:47:00 +08:00
    当然,java 是最出色的语言之一,但 PHP 是世界上最好的语言-飙理由:易学易用,工作岗位多,避开学院派竞争小,说不能搞大项目,我仔细一想,有几个大项目给我搞的,自身履历还进不了大厂,无非都是中小项目,够用了,说没追求,兄弟,路是一步步走出来的,打 BOSS 靠升级呀
    ioth
        38
    ioth  
       2018-07-23 09:54:28 +08:00
    中国啥都是一阵风,zf 又乱吹,什么大数据、物联网、云服务、5G,不懂装懂。
    就是一简单技术。浪费我交的税。
    numoone
        39
    numoone  
       2018-07-23 14:13:09 +08:00
    我觉得更重要的是 Java 有成熟的商业推广和支持。
    lolizeppelin
        40
    lolizeppelin  
       2018-07-23 16:59:22 +08:00
    别 TM 吹 python 了...python 一个 int 占用最少 28 字节,用来密集计算找死啊
    008px
        41
    008px  
       2018-08-18 16:41:38 +08:00
    @feverzsj 嗝屁????
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:38 · PVG 03:38 · LAX 11:38 · JFK 14:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.