zoukankan      html  css  js  c++  java
  • 一骑绝尘引发的思考–关于hive程序员是否需要学习mapreduce

    标题是一篇文章,为新华社记者杨明所写,文中讨论了中国在亚运会团购金牌的事,认为泱泱中华不应该再以金牌论英雄,而需将竞技体育转移到全民运动中来,让全社会都来热爱体育,热爱运动。
    引用此文,不是在此讨论体育,而是因为前些天巴真同学的拍砖引起了我的一些想法!为什么会有这么多想法?因为本人活到现在还没有人在我的文章后留言如此之长,为表敬重,单独再开一贴。
    其实我们所要争论的核心议题很明确,就是hive程序员是否应该了解mapreduce!对于巴真的板砖,我有一点不同的想法:
    其一,hive和mapreduce的关系其实没有C语言和编译语言,JAVA和汇编程序这么深。就我认为,hive和pig等语言类似,只是一个shell,一个包装了mapreduce的shell,他使得编写m/r程序更加的方便入手,使得步入云计算的程序员门槛更低。但是,就像编写C语言你依然需要去了解指针,学习JAVA你也肯定会去研究GC一样,为了编写精美和高效率的代码,一个程序员应该去了解你的SQL是如何转为m/r的。
    其二,工业由利润推动,我很赞同这句话。这就像hive的诞生一样,推动着云计算的使用人群从篮球框变大到了足球门!但是就像摘掉了“东亚病夫”帽子的中国再也不能唯金牌论一样,公司发展到了一定程度也就不能唯利润论了。经过了刀耕火种的资本原始积累之后,接下来就应该保住利润,降低成本。正所谓创业容易守业难,我们需要降低成本,就需要更深入的设计,更深入的发展。学习mapreduce可以帮助我们更好的理解hive的运行过程,以至于写出更好的代码,开源节流。
    其三,要说点实际情况。在hive的优化过程中,曾经碰到过两表join时候OOM的情况。解决问题一句话:”小表放前,大表放后”!其背后的本意是:“对于同一个key来说,对应的value值小的放前,大的放后”,如果没有接触过m/r,单一的SQL程序员是很难理解这句话的意思的。
    给你一份简谱,你可以“弹”出一首很美的歌曲,但如果你想“创作出”优美的旋律,你就必须懂得五线谱;中国可以团购金牌,但要成为体育强国,必须要深层次的发展体育;hive可以很快很好的带来效益(这就好像临时需求),但是要持续不断的稳定产出(这就类似上线代码),则需要理解m/r的原理。
    以上愚见,仅供参考。
  • 相关阅读:
    Java实现 LeetCode 56 合并区间
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786640.html
Copyright © 2011-2022 走看看