大数据面试题(一)

记录第一次大数据面试,emmm,充分体验了问啥啥不会!

首先,来看这次的题。
1、如何将本地80端口的请求转发到8080端口,当前主机ip为192.168.16.1,本地网卡eth0

2、拦截器和过滤器的区别,在项目中的应用

3、开发中都用到了那些设计模式?用在什么场合?

4、Spring Boot如何定义多套不同环境配置?在项目中采用哪种方式

5、你了解的MQ有哪些?简要说明作用和应用场景

6、Tomcat共享session处理的几种方式

7、employee文件中记录了工号和姓名
employee.txt
100 Jason Smith
200 John Doe
300 Sanjay gupta
400 Ashok Sharma
bonus文件中记录工号和工资
bonus.txt:
100 $5,000
200 $500
300 $3,000
400 $1,250
要求用shell命令把两个文件合并并输出如下
处理结果:
400 ashok sharma $1,250
100 jason smith $5,000
200 john doe $500
300 sanjay gupta $3,000

8、用Java写一个递归遍历目录下面的所有文件。(可写伪代码)

9、SQL
Table A uid uname address
Table B uid oid otime money
字段说明:
Uid 用户id uname 用户名 address 用户地址 oid 订单号 otime 订单时间 Money 订单金额
Otime格式:yyyy-MM-dd
查询:各个地区用户本月最后一次消费金额top3
Adress uid otime money topid

解:
1、第一题就是考察Linux命令,emmm,真没记住,其实没记住的挺多的。查了一下,有两个,在Linux上root下试了,ok的。
iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp --dport 80 -j DNAT --to 192.168.16.1:8080
或 者: iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

2、拦截器和过滤器的区别:
过滤器可以简单理解为“取你所想取”,忽视掉那些你不想要的东西;拦截器可以简单理解为“拒你所想拒”,关心你想要拒绝掉哪些东西,比如一个BBS论坛上拦截掉敏感词汇。

1.拦截器是基于java反射机制的,而过滤器是基于函数回调的。
2.过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。
3.拦截器只对action起作用,而过滤器几乎可以对所有请求起作用。
4.拦截器可以访问action上下文、值栈里的对象,而过滤器不能。
5.在action的生命周期里,拦截器可以多起调用,而过滤器只能在容器初始化时调用一次。 ----百度百科

拦截器与过滤器使用场景:
spring Web MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。

1.日志记录:记录请求信息的日志,以便进行信息监控,信息统计,计算PV等。
2.权限检查:如登陆检测,进入处理器检测检测是否登录,如果没有直接返回登陆页面;
3.性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间;
4.通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有如提取Locale、Theme信息等,只要是多个处理器都需要的即可使用拦截器实现。
5.OpernSessionInView:如hibernate,在进入处理器打开Session,在完成后关闭Session。

3、开发中常用的设计模式

4、Spring Boot如何定义多套不同环境配置?在项目中采用哪种方式

emmm,看到了比较懵,查了才知道,用过的,只是不知道这玩意怎么说,配置文件,在创建项目后,会看到一个resources目录下有一个application.properties文件,这个就是配置文件,复制多份,并且改名,不同文件做不同的配置,在application.properties激活不同环境的配置文件。启动项目!over!
5、MQ查了下,从最了解的说,面试的时候都没写。。。emmm

Kafka
Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统,具有以下特性:

快速持久化:通过磁盘顺序读写与零拷贝机制,可以在O(1)的系统开销下进行消息持久化;
高吞吐:在一台普通的服务器上既可以达到10W/s的吞吐速率; 高堆积:支持topic下消费者较长时间离线,消息堆积量大;
完全的分布式系统:Broker、Producer、Consumer都原生自动支持分布式,依赖zookeeper自动实现复杂均衡;
支持Hadoop数据并行加载:对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。
Redis
使用C语言开发的一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。

6、Tomcat共享session处理的几种方式

基于NFS的Session共享
基于数据库的Session共享
基于Cookie的Session共享
基于缓存的Session共享
Session复制

7、Shell命令是没有学,emmm,感觉好多都用,就决定看看吧!先空着。。。

8、用Java写一个递归遍历目录下面的所有文件。
应该是能写出来的,如果给我一个电脑试的话。哈哈

然而并没有!
自己写一下!

9、第一次面试,emmm,有点无从下手,感觉还是有个电脑方便。果然还是太菜了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值