当前位置: 首页 > news >正文

Shell在大数据时代的魅力:从一道百度大数据面试题想到的点滴

对于在Linux下开发的同学来说,Shell可以说是一种基本功。

对于运维的同学来说,Shell可以说是一种必备的技能,而且应该要非常熟练的书写Shell。对于Release Team,软件配置管理的同学来说,Shell也起到了非常重要的作用。尤其是分布式系统发展的如火如荼,很多开源项目都开展的如火如荼(好像不是分布式的系统都不好意思拿出来说事)。分布式系统的配置,管理,Shell也起到了非常重要的作用,虽然只是简单的文件拷贝,但是谁让Shell天生是做这些的呢?


当然了,以上不是本文的主题。本文的主题是Shell在大数据分析领域的作用。

看一代经典的百度面试题吧:

对于一个用户日志文件,每行记录了一个用户查询串,长度为1-255字节,共千万行,请排出查询最多的前100条。 日志可以自己构造。

对于使用C++, Java的同学来说,这个不是说几分钟就可以把可运行的代码搞定的。这个怎么样也得几十行代码吧。当然了,这个也可以考察一个同学编程,设计的基本能力。

但是我相信,如果你能用Shell来完成,面试官,或者至少是我,会很满意,因为Shell天生就是做这个的:

一行代码搞定:

awk '{print $1}' $file | sort | uniq -c | sort -k1nr | head -n$100

不用担心内存的问题,因为这几千万条数据完全可以装在内存中,而且,现在集群中的可用节点,没有几十G的内存都不好意思活着(当然了如果你们生产环境下的机器还是个位数的内存,那么你们。。。)。


尤其是你上线了自己的某个Feature,可能想很快的看一下相关的数据,那么把某个时间段的数据拿来分析一下,可以很好的去评估一下上线Feature的性能,等等。


转载于:https://www.cnblogs.com/wuwa/p/6190795.html

相关文章:

  • CentOS7简单部署NFS
  • Axis2发布webservice(1)--0配置发布
  • 从零开始的无人驾驶 1
  • Redis中的lru算法实现
  • 数据库之开源数据库
  • 19-02-19
  • Linux软件包的管理--YUM
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 自己写代码生成器 (一)
  • Redis的resp协议
  • 炒冷饭系列:设计模式 工厂方法模式
  • 2019年寒假作业2 - 7-1 币值转换
  • JavaScript-如何实现克隆(clone)函数
  • [总结]Android系统体系结构
  • 给第三方使用接口的 URL 签名实现
  • const let
  • ES6系统学习----从Apollo Client看解构赋值
  • Git初体验
  • java 多线程基础, 我觉得还是有必要看看的
  • nginx 配置多 域名 + 多 https
  • Odoo domain写法及运用
  • Redis在Web项目中的应用与实践
  • spark本地环境的搭建到运行第一个spark程序
  • 程序员最讨厌的9句话,你可有补充?
  • 从零开始的无人驾驶 1
  • 模型微调
  • 前端js -- this指向总结。
  • 如何在 Tornado 中实现 Middleware
  • 树莓派 - 使用须知
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 数论-逆元
  • #LLM入门|Prompt#3.3_存储_Memory
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (4)logging(日志模块)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (十)T检验-第一部分
  • (算法)Game
  • (转载)Linux 多线程条件变量同步
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net 调用php,php 调用.net com组件 --
  • .net 受管制代码
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .Net环境下的缓存技术介绍
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ 数据结构 - C++]红黑树RBTree
  • [20140403]查询是否产生日志
  • [20161101]rman备份与数据文件变化7.txt
  • [2544]最短路 (两种算法)(HDU)
  • [CF543A]/[CF544C]Writing Code