Spark SQL 与 Hive 的第一场会师
“你好,一杯热美式,加 2 份shot, 1 份焦糖,谢谢”
L 跨进汇智国际中心大厦的 Starbucks, 拿着 iPhone 对着点餐机轻轻一扫,对黑带服务员小妹抛出一个笑脸。
“ L 先生,您的热美式”
“谢谢”
最近 1 礼拜,无论双休还是工作日,L 每天基本都是同一时间,在早上 Starbucks 开门的 5 分钟内必定冲进去,点好咖啡,在大玻璃落地窗坐定。打开 17 寸 MacPro 翻盖,等待唤醒休眠了 6 小时的 3 台 vmware fusion centos 虚拟机。
当 vmware fusion 全亮了之后,L 也将各种 guide 从十字徽章包中取出,一一摊开在松木桌上。满意的看着这些战利品,L 认真的饮下两口香美式。
在 L 的心目中,大玻璃落地窗,加上一张 2.8 米长,1.5 米宽的深棕色送木桌,简直是灵感之台,梦寐以求。而如今 41 块的价格,便能让他坐上一整天,这么划算的买卖,L 自是不会放过。
每天 不到 6 小时的睡眠,从参加了 GIIS (Global Information Industry Summit)峰会之后, L 便一直沉浸在对大数据的研究中。搭建了各种 hadoop, Hive, Spark 环境,就是为了让自己尽快对各种实战环境能有所熟悉。这种久违的亢奋,还是 10 多年前在玩 Oracle 9i/10g 的时候有过。Oracle Concepts 小手册被 L 打印了 6 份,生活中所到之处,都可以随手翻看。别人说他浪费,“嗯,每天拿着 900 多页的书,跑来跑去,那才叫浪费,浪费智力”。
“上班挤公交,下班乱逛街,那都是浪费精力,精力不可再生,无端浪费会妨碍智力的获取与生长,简直是对生命的亵渎” L 一向都这么告诫自己。
“ Spark 的威力在于可以发挥分布式集群种所有机器的内存运算,使其只为一个应用服务。”
“ 而 Spark SQL 则将这种内存运算封装为类 SQL 标准的 DSL 语法。相当于是说,我要挖干西湖,唯一要做的事情就是发出“挖”这个命令,至于 1 个人挖还是 1000 个人挖,我不管。我要做的事情便是发出指令,如何实现的,我只要找到对的人,派给他干就行。我要考虑的是挖干西湖之后,我接下来要干什么。”
“挖西湖这么伟大的工程,一个人肯定不行。同样在 20分钟内,处理大数据比如 2T 数据,一台计算机肯定玩不转吧,那么 1000 台同时计算呢?” L 眉头一紧,“ 还真是没想想过这么玩的”。
“不过且慢。1000台计算机就肯定比一台计算机快吗?就简单拿 3 台计算机来说,Spark 怎能确保每台计算机正好处理了他所需要的那部分数据呢,如果需要从网络上另一台计算机读取所需数据呢,是不是造成堵塞,延迟加长?再比如,1000 台计算机,万一哪一天某台计算机抽风,跪了之后怎么能确保数据一致性呢?”
“再如果…. ”
一堆问题萦绕在 L 心头。
不知不觉,马克杯的美式,已经半杯下肚了。
作为 SQL 的狂热分子,其实 L 看上 Spark 的原因,也是因为 Spark SQL. 想着也肯定可以快速玩转 Spark SQL, 然问题却越来越多。
L 盯着前两天做的草图,眼珠不停的在几个方框之间来回游离
“如果 Spark SQL 和 Hive 的 metaData store 通用一套,那么 Spark SQL 不是也知道了 Hdfs 上的文件存储块。这样一来,Spark SQL 的物理指令不也箭无虚发了”
“所以可以大胆的假设,Spark 在每一台 hadoop data node 上都部署了自己的 slave, 与 hadoop cluster 融为一体,再拥有了 hive 的 metadata store, 便可坐拥宝山了。Awesome, you are great, L! 本质上我要只要把这些统统都搭建在一个集群中,给 spark 配置一套 hive 的参数文件,那么整个体系就打通了。 ”
“说干就干吧!” L 猛地吞下两口咖啡,登录进了黑屏的 centos.
"java, hadoop/hive/spark home, 已经 配置好了,ssh 也设置完毕。centos00,centos01,centos02 已经同步完成。现在的问题是配置文件,问题不大。"
打开 freedoor, google 下来一堆配置参数,L 照着都填了进去。
“先开 hdfs, 再开 yarn, 看看结果如何”
"hadoop ready , awesome"
"看看 Hive "
"配上 hive-site.xml 给 spark "
"似乎一切也来得太容易了,登录 spark-sql 看看 sqoop 导入的数据"
“简直perfect, 没想到今天这么顺利。看来前几天的功夫没白费,犒劳下自己看场电影吧”
作为 85 前,80 后,都是看着港剧长大的,自然《无双》是不可不看的。加上 L 是个影迷,一星期不看一部电影,那都是感觉白活了。
"顺便把前些日子没看的补上吧,貌似铁血战士也不错"
当然,L 在潜意识中也想好了下一步,仅仅环境部署好了,没有上手的客户端去跑 SQL,去做数据展现也是无用,所以 Hue, Tableau 也得抓紧配上来,但眼下不急,该玩的时候还得玩。
L 用海明威在接受《巴黎评论》采访的语录安慰自己:
写书或者写故事的时候,每天早上天一亮我就动笔,没人打搅;写好的部分通读一下,知道接下来会发生什么,会写什么就停下来,直到第二天再去碰它。
“ 大作家都这么做,更何况我一小 IT ”