1、 开本专题的背景意义
面试体会:应用层面过浅、对平台框架理解不到位
求职倾向:不要讲hadoop开发工程师,因为它仅是个简单的工具而已
2、 Hadoop历史发展
Nutch:
Lucene:
NDFS:nutch distributed file system
MapReduce:
Hadoop:GFSàHDFS,MapReduceàMapreduce,BigTableàHbase,ChubbyàZookeeper
Doug Cutting:
Google三大论文:GFS,MapReduce,BigTable,Chubby
3、 Hadoop核心组件
Common: 一组分布式文件系统和通用I/O组件与接口(序列化、javarpc和持久数据结构)
Arvo: 一种支持高效、跨语言的RPC以及永久存储数据的序列化系统。
Zookeeper:分布式、可用性高的协调服务,提供分布式锁之类的基本服务用于构建分布式应用。
HDFS:分布式文件系统,Hadoop distributed File System
MapReduce : 分布式处理模型与计算框架
经典:WordCount
4、 关键名词解释
Hdfs: namenode,中心点,管理hdfs的命名、节点、数据块的安全、协同一致
secondary namenode:对namenode的snap screen.
datanode
Mapreduce: jobtracker
,tasktracker
Job: 一个具有独立的计算任务单元
5、 Hadoop生态圈相关
Hive: 数据仓库与hql操作mr
Pig:数据流语言,是hadoop的轻量级封装,相对于它,hive是重量级的
HBase:基于列存储的nosql数据库,可以用于海量数据存储和实时查询
Sqoop: 在数据库和HDFS之间高效传输数据的工具
Storm: 分布式实时计算,强调实时性,常用于实时性要求较高的地方
Spark: Spark基于map reduce算法实现的分布式计算框架,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
6、 hadoop FAQ
6.1 是不是所有的大数据计算都可以用hadoop来搞定?
只有可以将数据独立分离计算与合并的任务才可以用hadoop来搞定,即可分割。但大量的实战证明,绝大多数的计算任务都可以通过合理的设计化分成可以划分成可以hadoop处理的任务。但像gzip压缩包解压缩这样的操作,一般认为是无法用hadoop来并行计算的,因为gzip是不可分割的,但像lzo,bz2等可分割的压缩格式,均可以被hadoop处理。
6.2 hadoop不适宜于实时性计算较强的计算
它是专为离线大数据而设计的,讲究的是吞吐量而非响应速度。像实时查询、实时计算对于hadoop是不适合的。为此hadoop也开发如hbase等为解决这一问题作出努力,但在实时性方面还是很大的弱点,像最近兴趣的spark、storm等,可以作为大数据实时处理的利器,与hadoop互补使用。