Hadoop是一个由Apache基金会的发布的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。
充分利用集群的威力进行高速运算和存储。
Ø hadoop是什么?
What Is Apache Hadoop?
The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
Hadoop是开源的,可靠的,可扩展的,分布式的运算存储系统。
备注:用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。
Ø Hadoop能解决什么问题?
l 海量数据的存储(HDFS)
l 海量数据的分析(MapReduce)
l 资源管理调度(YARN)
Ø hadoop来源与历史
l Hapdoop是Google的集群系统的开源实现
-Google集群系统:
GFS(Google File System) 、MapReduce、BigTable
-Hadoop主要由HDFS(Hadoop Distributed File System即hadoop分布式文件系统)、MapReduce和Hbase组成。
l Hadoop的最初是为了解决Nutch的海量数据爬取和存储需要。
l Hadoop在2005年秋天作为Lucene的子项目Nutch的一部分正式引入Apache基金会。
Ø hadoop具体能干什么
hadoop擅长日志分析
l facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析.
l 淘宝搜索中的自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!
l 在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是hive,少量尝试mahout-机器学习!)
Ø 哪些公司使用hadoop
l Hadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。
比较大型IT公司如EMC、Microsoft、Intel、Teradata、Cisco都明显增加了Hadoop方面的投入。
l 在淘宝:
n 从09年开始,用于对海量数据的离线处理,例如对日志的分析,交易记录的分析
n 规模从当初的3~4百台节点,增加到现在的一个集群有3000个节点,淘宝现在已经有2~3个这样的集群
n 在支付宝的集群规模也有700台节点,使用Hbase对用户的消费记录可以实现毫秒级查询
Ø Hadoop生态地图
1.这一切是如何开始的—Web上庞大的数据!
2.使用Nutch抓取Web数据
3.要保存Web上庞大的数据——HDFS应运而生
4.如何使用这些庞大的数据?
5.采用Java或任何的流/管道语言构建MapReduce框架用于编码并进行分析
6.如何获取Web日志,点击流,Apache日志,服务器日志等非结构化数据——fuse,webdav, chukwa, flume, Scribe
7.Hiho和sqoop将数据加载到HDFS中,关系型数据库也能够加入到Hadoop队伍中
8.MapReduce编程需要的高级接口——Pig, Hive, Jaql
9.具有先进的UI报表功能的BI工具- Intellicus
10.Map-Reduce处理过程使用的工作流工具及高级语言
11.监控、管理hadoop,运行jobs/hive,查看HDFS的高级视图—Hue, karmasphere, eclipse plugin, cacti, ganglia
12.支持框架—Avro (进行序列化), Zookeeper (用于协同)
13.更多高级接口——Mahout, Elastic map Reduce
14.同样可以进行Hbase
备注:
HIHO传统数据库和hdfs进行数据交换https://github.com/sonalgoyal/hiho/
Sqoop传统数据库和hdfs进行数据交换,目前支持cloudera版本的hadoop,项目主页:https://github.com/cloudera/sqoop
Flume日志实时传输整合工具,项目主页:https://github.com/cloudera/flume
flumebase给予flume 的实时数据流查询分析工具,目前还是测试版本,项目主页:flumebase.org
DataStax发布了Brisk,一款新的分布式平台,它增强了Hadoop和Hive平台的可伸缩性低延迟数据功能。这使得Brisk成为唯一一个既能够作为低延迟数据库处理海量网络数据和实时应用,又能够紧密结合Hadoop和Hive的分析功能的平台。
karmasphere基于hadoop的数据分析软件,商业软件,有社区版:http://www.karmasphere.com/Buy-karmasphere-studio-product-family.html,社区版不包含analysis
HBase是一个分布式的、面向列的开源数据库http://hbase.apache.org/
Ø Hadoop版本
l Apache hadoop官方网址http://hadoop.apache.org/
官方目前最高版本(2.7.0)
备注:下载地址http://hadoop.apache.org/releases.html
官方提供的包有两种:
一:source包,也就是源码包要求自已编译安装的包
二:binary包,32位编译后的包,可以直接使用的包。
注意:官方只提供32位环境编译的包,只能运行在32位机器上.生产环境一般是64位操作系统,要求自已编译源码包进行安装。
另外下载所有版本网址:http://archive.apache.org/dist/hadoop/
其中http://archive.apache.org/dist这部分是apache开源的所有项目地址,而http://archive.apache.org/dist/hadoop/ 是hadoop项目的地址。
l Cloudera
使用下载最多的版本,稳定,有商业支持,在Apache的基础上打上了一些patch。推荐使用。
l HDP(Hortonworks Data Platform)
Hortonworks公司发行版本。
Ø hadoop1.0和hadoop2.0的对比
2.X版本主要将数据处理部分进行可插拔处理,提供多种的数据处理方式---mapreduce和spark
l 早期版本两大核心
l 后期版本两大核心
Ø Hadoop的特点
l 扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。
l 成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。
l 高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。
l 可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。
Ø Hadoop部署方式
l 本地模式
l 伪分布模式
l 集群模式