美文网首页我爱编程
大数据常见问题

大数据常见问题

作者: d394af621d4c | 来源:发表于2017-12-26 12:24 被阅读31次

    1、给一个超过100G大小的log file,log中存着IP地址,设计算法找到出现次数最多的IP地址?(与如何知道top K的IP,如何使用Linux系统命令实现)

    Hash分桶法:

    • 将100G文件分成1000份,将每个IP地址映射到相应文件中:file_id = hash(ip) % 1000

    • 在每个文件中分别求出最高频的IP,再合并Hash分桶法;

    • 使用Hash分桶法把数据分发到不同的文件;

    • 各个文件分别统计top K;

    2、给定100亿个整数,设计算法找到只出现一次的整数。

    Hash分桶法,将100亿个整数映射到不同的区间,在每个区间中分别找只出现一次的整数。

    3、给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集

    扫描每个整数是否出现过,节省内存方法使用bitmap。

    桶分 + bitmap。如果整数是32bit,直接使用bitmap的方法实现。

    所有整数共232种可能,每个数用两位表示,00表示文件均没出现,10表示文件1出现过,01表示文件2出现过,11表示两文件均出现过,共需要232*2/8 = 1GB内存,遍历两个文件中的所有整数,然后寻找bitmap中11对应的整数即是两个文件的交集,这样即可线性时间复杂度完成。

    4、1个文件有100亿个int,1G内存,设计算法找大出现次数超过2次的所有整数。

    Bitmap扩展:用2个bit表示状态,0表示未出现,1出现过1次,2出现过2次或以上。

    5、给两个文件,分别有100亿个query,我们只有1G内存,如何找到两个文件交集?分别给出精确算法和近似算法?

    精确算法:Hash分桶法

    将两个文件中的query hash到N个小文件中,并标明query的来源;

    在各个小文件中找到重合的query

    将找到的重合query汇总

    近似算法:BloomFilter算法

    5、说说Zookeeper

    640.jpg 640hbase.jpg

    Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Server具有相同的系统状态。

    当leader崩溃或者leader失去大多数的follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的leader,让所有的Server都恢复到一个正确的状态。

    ZooKeeper学习第一期---Zookeeper简单介绍

    6、说说HBase

    Hbase架构与原理

    Dpz74XZ.jpg

    7、说说ETL

    ETL讲解

    ETL (Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)
    是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

    相关文章

      网友评论

        本文标题:大数据常见问题

        本文链接:https://www.haomeiwen.com/subject/bfwdgxtx.html