对于Hadoop初学者,最好不要告诉他什么定义,什么框架云云,因为很容易当成负担,实际上它也只是个工具。
搞清楚Hadoop帮助我们解决了什么问题?
或者换个角度想,没有Hadoop,我们做同样一项工作会增加什么任务?
想清楚了这些,你才可以心怀期待的去慢慢学习它。(当然,如果你已经知道了这些,请直接跳到第二趴)
【大数据开发学习资料领取方式】:加入大数据技术学习交流群522189307,点击加入群聊,私信管理员即可免费领取
理解了Hadoop为什么而来,也就知道了他的本质:
1. Hadoop最早起源于Nutch。
Nutch的设计目的是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能;
但随着抓取网页数量的增加,遇到了严重的可扩展性问题:如何解决数十亿网页的存储和索引问题。
2. 后来谷歌发表的两篇论文为该问题提供了可行的解决方案。
分布式文件系统(GFS),用于处理海量网页存储
分布式计算框架(MapReduce),用于海量网页的索引计算问题
3. 到2008年,Hadoop成为Apache顶级项目。
4. 到现在hadoop已经形成了完善的生态圈。
简单来说,对上了一定规模,特别是当公司每天产生TB级以上数据需要处理的时候,用mysql技术栈已经越来越难解决,甚至解决不了,这时就需要hadoop技术稳定的完成这些数据快速的存储、抽取、计算和分析。
目前,Hadoop在帮助我们做什么?
从搜索引擎、数据备份、数据仓储、数据挖掘到数据分析,它的应用几乎大涵盖了大数据应用的各种可能性:
大数据量存储:分布式存储
日志处理:Hadoop擅长这个
海量计算:并行计算
ETL:
数据抽取到oracle、mysql、DB2、mongdb及主流数据库
数据分析:
用扩展性应对大量的写操作—Facebook构建了基于HBase的实时数据分析系统
机器学习:比如Apache Mahout项目
搜索引擎:hadoop + lucene实现
数据挖掘:目前比较流行的广告推荐
用户细分特征建模
个性化推荐等
不管是国外的著名公司Google、Yahoo!、微软、亚马逊、 EBay、FaceBook、Twitter、LinkedIn、Cloudera、Hortonworks等;
又还是国内的中国移动、阿里巴巴、华为、腾讯、百度、网易、京东商城等,都在使用Hadoop及相关技术解决大规模化数据问题,以满足公司需求和创造商业价值。
或许你所在的公司还没有像Google、华为、腾讯一样有如此大规模的数据需要处理,但数据对于公司的意义却在与日俱增,时刻准备好自己的竞争力,面对规模化的必然趋势。
2.如何学习Hadoop?要学些什么?
以Hadoop为技术圆心,掌握大数据生态体系
想叩开大数据的大门,必须要学会Hadoop。那么,我们应该学习Hadoop的哪些内容呢?
围绕Hadoop已经形成了一个巨大的生态环境。
狭义的 Hadoop 核心包括HDFS 和 MapReduce ,DFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
和 Hadoop 核心密切相关的,还包括面向具体领域、应用的ZooKeeper、Hive、Pig 、HBase等扩展组件。
它们提供了互补性的服务,共同提供了一个海量数据处理的软件生态系统。
HDFS: Hadoop体系数据存储管理的基础。
是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。
HDFS 简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能。
MapReduce: 进行大数据量的计算模型,将数据切分分布在各个服务器上计算再合并结果,大大加快了计算速度。
Hive: 一个数据仓库工具,通过类SQL语句快速实现数据 ETL(抽取、转换和加载)、数据存储管理和大型数据集的查询和分析,而不必开发专门的MapReduce应用。
2009年时facebook就有30%的非编程人员使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用Hive。
Pig: 大规模数据分析工具,降低了对大型数据集进行分析和评估的门槛。
它提供的语言编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。
淘宝的商品推荐也是!在Yahoo的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤、用户特征建模。
HBase: 针对结构化数据的高可靠性、高性能、面向列、可伸缩的面向列的动态模拟数据库;
提供了对大规模数据的随机、实时读写访问,将数据存储和并行计算完美地结合在一起。
Sqoop: 实现Hadoop和关系型数据库中的数据自动转移。
Zookeeper: 解决分布式应用中经常遇到的一些数据管理问题。如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Flume: 分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
【大数据开发学习资料领取方式】:加入大数据技术学习交流群522189307,点击加入群聊,私信管理员即可免费领取
Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。
网友评论