BAT大数据的口试题 快保藏!
a、修改最大槽位数:槽位数是在各个 tasktracker 上的 mapred-site.xml 上配置的,默认都是 2
b、调解心跳隔断:集群局限小于 300 时,心跳隔断为 300 毫秒
c、启动带外心跳
d、设置多块磁盘
e、设置 RPC hander 数量
f、设置 HTTP 线程数量
g、选择吻合的压缩方法,以 snappy 为例:
17、计划题 1)收罗nginx发生的日记,日记的名目为user ip time url htmlId 天天发生的文件的数据量上亿条,请计划方案把数据生涯到HDFS上,并提供一下及时查询的成果(相应时刻小于3s) A、某个用户某天会见某个URL的次数 B、某个URL某天被会见的总次数
A、B、数据在进入到Spark-streaming 中举办过滤,把切合要求的数据生涯到Redis中 18、有 10 个文件,每个文件 1G,每个文件的每一行存放的都是用户的 query,每个文件的query 都也许一再。要求你凭证 query 的频度排序。 照旧典范的 TOP K 算法 ##, 办理方案如下: 1)方案 1: 次序读取 10 个文件,凭证 hash(query)%10 的功效将 query 写入到其它 10 个文件(记为)中。这样新天生的文件每个的巨细约莫也 1G(假设 hash 函数是随机的)。 找一台内存在 2G 阁下的呆板,依次对用 hash_map(query, query_count)来统计每个query 呈现的次数。操作快速/堆/合并排序凭证呈现次数举办排序。将排序好的 query 和对应的 query_cout 输出到文件中。这样获得了 10 个排好序的文件(记为)。 对这 10 个文件举办合并排序(内排序与外排序相团结)。 2)方案 2: 一样平常 query 的总量是有限的,只是一再的次数较量多罢了,也许对付全部的 query,一次性就可以插手到内存了。这样,我们就可以回收 trie 树/hash_map等直接来统计每个 query呈现的次数,然后按呈现次数做快速/堆/合并排序就可以了。 3)方案 3: 与方案 1 相同,但在做完 hash,分成多个文件后,可以交给多个文件来处理赏罚,回收漫衍式的架构来处理赏罚(好比 MapReduce),最后再举办归并。 19、在 2.5 亿个整数中找出不一再的整数,注,内存不敷以容纳这 2.5 亿个整数 。
20、腾讯口试题:给 40 亿个不一再的 unsigned int 的整数,没排过序的,然后再给一个数,怎样快速判定这个数是否在那 40 亿个数傍边? ## 方案 1:oo,申请 512M 的内存,一个 bit 位代表一个 unsigned int 值。读入 40 亿个数,配置响应的 bit 位,读入要查询的数,查察响应 bit 位是否为 1,为 1 暗示存在,为 0 暗示不存在。 方案 2:这个题目在《编程珠玑》里有很好的描写,各人可以参考下面的思绪,切磋一下: 又由于 2^32 为 40 亿多,以是给定一个数也许在,也也许不在个中; 这里我们把 40 亿个数中的每一个用 32 位的二进制来暗示 ,假设这 40 亿个数开始放在一个文件中。 然后将这 40 亿个数分成两类:
并将这两种别离写入到两个文件中,个中一个文件中数的个数=20 亿,而另一个=20 亿(这相等于折半了); 与要查找的数的最高位较量并接着进入响应的文件再查找 再然后把这个文件为又分成两类:
并将这两种别离写入到两个文件中,个中一个文件中数的个数=10 亿,而另一个=10 亿(这相等于折半了); 与要查找的数的次最高位较量并接着进入响应的文件再查找。 ..... 以此类推,就可以找到了,并且时刻伟大度为 O(logn),方案 2 完。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |