大数据公司面试题准备

*100万条数据取topN,手写代码(手写快速排序)
*如何一个很大的文件把你的linux磁盘整崩溃了,怎么去查找这个文件?(这里的崩溃是指占用磁盘过多,什么命令找出这个文件;注意面试官提问问题前的提示)
  df -h  通过文件系统来获取空间大小的信息
  du -h  通过搜索文件来计算每个文件的大小然后累加得到的值(能在文件系统里面看到的文件才会被du统计)
  
  思路,先df -h,找到是那个磁盘崩溃了,然后cd 切换到该磁盘下,du -sh * 查看各个目录文件所占用大小,即找到该大文件
  -h, --human-readable  以可读性较好的方式显示尺寸(例如:1K 234M 2G)
  -s, --summarize       只分别计算命令列中每个参数所占的总用量
  
  
*kafka中producer、consumer,哪段是线程安全的,哪段是线程不安全的
    生产者KafkaProducer是线程安全对象,所以建议KafkaProducer采用单例模式,多个线程共享一个实例
    消费者KafkaConsumer是线程不安全,
   
   为什么是KafkaConsumer是线程不安全?
   线程与KafkaConsumer对象的对应关系是1:1,一个KafkaConsumer对象始终是由同一个线程来操作的;不然也不会存在消费者组的概念,topic下的每个分区只从属于消费组中的一个消费者,其它消费者是不能再去消费这个分区了。
   不能使用ScheduledExecutorService这个线程池来操作KafkaConsumer。因为线程池本来是为了共享而存在的,他在执行任务时,线程与任务的关系是不固定的,而KafkaConsumer要求的是固定的线程


*ES、Hbase数据更新有什么区别

都是存在更新,把旧数据标记为删除,不存在插入,如果一定要说有什么区别,那就是更新的命令不同,原理都很相似。

 

Hbase更新数据    (Put,Delete,Put,Scan/Get)

put 'ns1:t_userinfo','rk0001','base_info:name','zhaomin'

使用put命令更新现有的单元格值,新给定值替换现有的值,并更新该行。

标记删除,不是真正的删除。

major compact

默认7天执行一次,将多个storefile合并,会将过期的,超出版本数量的、标记为删除的数据都

进行删除(一般要在系统空闲的时候去做,因为需要大量的磁盘IO),一般会设置手动执行

 

ES更新数据

restful

window(http方式)

linux(curl方式),以此为例;  -XPut、-XDelete、-XPut/-Post、-XGet

curl -XPUT 11.11.11.11:30000/test_index/product/1 -d '{"brand_name" : "华为","product_name" : "P9"}'

ES可以使用PUT或者POST对文档进行更新(全部更新),如果指定ID的文档不存在,则执行插入操作,如果已经存在,则执行更新操作。

PUT操作是幂等的,即连续多次执行同一个PUT命令,与只执行一次命令,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值