面试笔记分享(大数据)

面试笔记分享(大数据)

总结时间:2014-7

总结人: 江中炼

开头须知:

1.其实,我希望大家看了不是看完就算了,也不要谢谢我的总结,我希望的传递这种共享的精神就像,你拿到这个总结以后,你自私的整合了你的东西,后期你不与别人分享,以后就没人与你来分享了,因为这种相信对于朋友,只有一次,如果受过伤,自然就不会继续传递了

2.希望我们一起传递正能力,传递开源和共享,做一个无私,并愿意帮助别人并与别人分享的人。谢谢大家合作,我讨厌自私的,更讨厌那种用别人东西的人,还不与别人分享的人

 

我就讲讲我们的项目吧:

项目

谈我们最近的联通邮箱项目吧

既然是项目,我们肯定是有目的的,我们那么的目的是干嘛呢?

是盈利?不是,是提高用户的亲密度,做产品推广,既然是产品推广,那么我的考虑的问题就是如何推广

既然是做推广,我们就得分析我们的用户人群勒

1:用户数据量的问题

2:用户使用情况

3:统计分析

4:针对性的去活动刺激、或者产品优化、反正就是满足这帮人群

5:再进行分析统计,然后分析我们最终的效果

 

那么上亿级别的数据量,我们用传统框架,明显不靠谱,这个mysql完全不行,oracle太贵,效率一般,我们从开发成本考虑到了用大数据hadoop来解决这个大数据量的问题

nutch

(知道的可以讲讲,不知道的直接忽略跳过)

那么我听说你们公司打算做站内搜索,据我了解,我对nutch是比较了解的,对于这款软件,我想说:对luence的完美封装,那么我们的技术开发成本较低,并且hadoopnutch里面的分割出来一个子项目,也就是nutchhadoop是完美支持的,我们现在的问题就是整合,把两款软件整合好,利用好,后期就是一些优化的工作勒

 

至于前台的查询索引,我们还是可以使用开源框架solr,这款框架最大的用户就是建立索引,方便快速查询展现,我们使用该框架式完全可以对我们的数据库建立相应的索引,当然用户量不过可以用关系型数据库(mysqloracle,数据量超标以后,这个我们完全可以考虑使用hbase,目前据我了解,这两款框架是可以完美整合的。

 

那么存储有hadoop,数据快速查询有hbase<针对用户>,数据爬取有nutch,建立索引有solr,我想前期这一块整合好,是非常有优势的。

 

最后就是前台的web页面,我感觉就简单了,做就行

Hadoop

谈到了hadoop,那么他有什么好处呢?

1.  容错性 hdfs 冗余备份机制/mapreduce 心跳机制,维持job正常完成)

2.  高效性  分布式文件系统,处理海量数据这也是他的优势

3.  扩展性  就是可以利用多台机器,进行分布式文件存储

4.  廉价性  降低开发成本,开源免费,硬件要求不高

(讲完以后,你就可以画一画mapreduce的底层计算的原理)

Hive/hbase

(这两个框架的底层原理,调优,实际的案例)

Hbase架构:http://www.cnblogs.com/shitouer/archive/2012/06/04/2533518.html

Hbase调优:http://blog.csdn.net/dajuezhao/article/details/6887575

Hive架构:http://my.oschina.net/repine/blog/192692

Hive调优:http://my.oschina.net/repine/blog/193869

 

Mahout推荐系统

什么是mahout

机器学习领域经典算法的实现,旨在帮助开发人员方便快捷地创建智能应用程序。

主要用于什么以及为什么?

Mahout的主要目的是实现可伸缩的机器学习算法(就是算法的M-R化),但也不一定要求基于Hadoop平台,核心库中某些非分布式的算法也具有很好的性能

目标是帮助开发人员快速建立具有机器智能的应用程序,目前比较成熟和活跃的主要包括:

  1. 1.     频繁模式挖掘

  2. a)       Apriori算法

  3. b)       FP

  4. c)       FP-Growth算法

  5. d)       PFP算法

  6. 2.     聚类算法

  7. a)       K-means

  8. b)       Canopy聚类

  9. c)       模糊K均值

  10. 3.     分类器

  11. a)       贝叶斯

  12. b)       随机森林

  13. c)       神经网络

  14. d)       决策树(ID3,C4.5

  15. 4.     推荐系统

  16. a)       kNN(k-nearest neighbor / Fix-size neighborhoods) 固定数量的邻居

                   i.           基于用户的协同过滤算法UserCF

                  ii.           基于物品的协同过滤算法ItemCF

  1. b)       Threshold-based neighborhoods基于相似度门槛的邻居

                   i.           基于用户的协同过滤算法UserCF

                  ii.           基于物品的协同过滤算法ItemCF

标准化的程序开发过程

UserCF的推荐算法为例,官方建议我们的开发过程

模型à相似度à最近邻à推荐算法

 

Spark

谈到spark,现在mahout做数据挖掘,当然需要时时计算

所以apache mahout官网说:goodbye mapreduce

那么spark到底是一个什么呢?

 

1. SparkUC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架

2. Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;3. 但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写

HDFS

4 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合

RDD是什么呢?

Spark还引入了一个抽象概念,即弹性分布式数据集RDDresilient distributed datasets )。RDD是一个分布在一组节点之间的只读的对象集合。这些集合是弹性的,即能够在部分数据集丢失的情况下重建。重建部分数据集的过程需要一种维护血统(lineage,即重建部分数据集所需的信息,说明数据是根据什么过程产生的)的容错机制支持。

一个RDD可以是:(1)一个从文件创建的Scala对象,或(2)一个并行切片(分布在各个节点之间),或(3)从其他RDD转换得来,或(4)改变已有RDD的持久性,如请求将已有RDD缓存在内存中。

总结:因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。

SparkHadoop的结合

Spark可以直接对HDFS进行数据的读写,同样支持Spark on YARN

Spark可以与MapReduce运行于同集群中,共享存储资源与计算,数据仓库Spark实现上借用Hive,几乎与Hive完全兼容。

 

 

 

面试的公司

我总结的比较少:

1.面试了很多家企业吧,小公司,大公司,加起来将近15家左右,其实就像很多人想的一样,去大公司,或者创业型公司(其他公司就尽可能不去考虑,都是为了利益,所以请谨慎选择

 

2.我前期是以本科学历去面试,基本上技术都过了,但是价格谈不高,我也不知道为什么,总感觉好像他们没有意识到你的价值所在;或者说你的水平没有体现出来,还有就是你对自己的人生规划没有规划好,别人就不打算考虑你勒(

我想:我tm这么小的孩子,能规划好自己的人生,我tm还来你这个破地方干嘛,我知道自己未来是什么样子,我早就去创业去了,我艹,这些人tm就闲的蛋疼!

不过这些人的存在还是有一定道理的,就是判断你是一个什么样的人,就像我能从你的话语中知道你未来的发展是什么样子的,所以那么单纯一点,要么老成一点,不要太别扭了,不知道就说不知道,不要吞吞吐吐的,人生的规划是一个长期的想法,所以你临时拼凑的话别人是看的出来的。

如果不知道就说:我现在只想好好的工作,尽自己的最大能力去完成并优化自己的工作,提升公司效率,其他的我没想过,就这么简单那,不要搞得太复杂了,有时候你回去,听你自己的话,你都感觉到好笑,更何况那些都是职场老手,见过的人,比你喝过的水都多,所以见机行事

3.最后我想通了,做真诚的人,我就以高中学历开始投,其实很多公司,特别是创业型公司,不会看重你的学历,还有一些正在向上发展得上市公司,对学历要求每那么高,要的是能力,

对于百度,我只想说:人家看的不光是能力,还有学历。以我这个水平,做ETL,我感觉15k完全可以拿下,对于我来说,没问题,我能做,但是我没学历。这是事实,所以更要让自己牛逼,让别人为你破格。这都是后话

其实这并没有错,错的是我们以前没有 努力的去学习,所以坚持学习,奋斗,坦诚的做事,我相信会有结果的

 

4.你们会说:我运气好,我找到工作,其实我也是这样认为的,我运气还不错;就像很多人说诚实在中国的确是一个奢侈品。就像无私分享在中国也是奢侈品一样

 

5.不过对你们刚找工作的人来说,或者经验机会没有的人来说:你可以包装,其实这个你能力够,你可以做到的,甚至你的能力都超过了工作过几年的人。

但是如果你想真诚的做事,问心无愧:就投个实习生,然后写出你会的公司,做过的项目,我的能力是可以为我的经验少作支撑的,我相信,尽管这样的公司很少(就像我现在一直坚持开源共享一样,我没有吹牛逼,我真的是这样做,我的学历都改了,都是真实的,项目当然这个事需要包装的,这个跟你的经验没关系,跟你的灵活性有关了,如果你独立的做一个项目出来,写出项目,和流程,优化;别人愿意培养的,你放心,但是还是需要耐心

 

 

 

对于这个面试必备的东西,没有版权问题,随便传递,但是请不要做一个自私的人。

记得我们的口号:

开源共享

座右铭:

你在你擅长的领域牛逼,

并带着一群小白变牛逼,

别人会发自内心的去尊重你的。

         --请点击加入我们

 

现在算法这一块还是比较欠缺,我想找一个朋友帮忙完善一下博客

如果大家这样愿意分享交流的朋友,请及时推荐给我,谢谢

联系方式:(外号:小头)

QQ529815144  ||  QQ群:248087140

 


你可能感兴趣的:(hadoop,spark,hive,面试,大数据,Mahout,笔记,分享,心得体会,开拓者——面试笔记分享)