首页 > 代码库 > Hadoop学习第一次:hadoop概念
Hadoop学习第一次:hadoop概念
1.大数据学习方向:一是系统建设技术,二,海量数据应用。
先说系统建设,现在主流的技术是HADOOP,主要基于mapreduce的分布式框架。目前可以先学习这个。但是我的观点,在分布式系统出来之前,主要是集中式架构,如DB2,oracle。为什么现在用分布式架构,那是因为现在集中式架构受限于IO性能,出来速度慢,如果又一种硬件技术,可以很快地处理海量数据,性能上能满足需求,那么集中式架构优于分布式架构,因为集中式架构稳定,运维压力小。现在的集中式架构要么性能达不到要求,要么就是过于昂贵。我期待一种技术出现,可以非常快地传输和处理数据,那么集中式架构将再次进入人们眼球。再说海量数据应用。海量数据应用主要是数据挖掘和机器算法。具体有不同的应用场景,如个性化搜索和推荐,社交网络发现,精准营销,精准广告,实时最优路径,人工智能等等。看你想做系统支撑技术还是与业务结合的应用技术。
2.hadoop学习路线:①选择一个Hadoop的版本,然后阅读文档了解Hadoop:What‘s Hadoop, Why Hadoop exists;②安装Hadoop,三种方式都试下;③在Hadoop文档里面有Hadoop Command的资料,I.hdfs command,II.job command,尽量试试这两方面的命令;④Hadoop Files,看看Hadoop文件的概念,关注它的分布式特点,然后看看Reduce函数输出的文件;⑤自己写WordCount与Advanced WordCount;⑥写HDFS io,这个例子在《Hadoop In Action》里面有,讲得也不错。如copy,sequenceFile等;⑦写Sort程序;⑧写MRBench程序(这个网上有很多例子),了解MRBench是什么;⑨使用RandomTextWriter;10.模仿SequenceFileInputFormat、SequenceFileOutputFormat、SequenceFileRecordReader写自己的;11.yahoo有一个Hadoop的教程,英文版的,里面的内容很好;12.《hadoop权威指南》当参考书,自己实战了。
Hadoop:
1.是一个能够让用户轻松架构和使用的分布式计算平台,用户可以在其上面开发运行处理海量数据的应用程序。2.项目及其结构:
(1).HDFS:分布式文件系统 良好的扩展性,容错性。
Namenode:Master 管理HDFS的名称空间,管理数据块映射信息,配置副本策略,处理客户端读写请求
Datanode:Slave 存储实际数据块,执行实际的数据块读写操作
Client:文件切分(默认大小64M),与Namenode,Datanode交互
Secondary Namenode:辅助Namenode
(2)MapReduce:分布式计算框架 易于编程,良好的扩展性,高容错性,适合PB级数据的离线处理
JobTracker:Master 管理所有作业,将作业分解并指派给TaskTracker
TaskTrack:Slave运行Map task和Reduce task
(3)Hive基于hadoop的数据仓库,定义了类SQL的查询语言HQL,用于离线处理数据
(4)Pig:基于Hadoop的数据流处理系统 提供一种基于MapReduce的ad-hoc数据分析工具
(5)Mahout:数据挖掘算法库
(6)HBase:分布式数据库
(7)ZooKeeper:分布式写作服务
(8)Sqoop:数据同步工具 连接hadoop与传统数据库的桥梁,本质是一个MapReduce程序
(9)Flume:日志收集工具
Hadoop学习第一次:hadoop概念