Hadoop及其相关组件简介
一、大数据介绍
1、大数据指的是所涉及的数据量规模巨大到无法通过人工,在合理时间内达到截取、管理、处理、并整理成为人类所能解读的形式的信息。
2、大数据,可帮助我们能察觉商业趋势、判断研究质量、避免疾病扩散、打击犯罪或测定即时交通路况等。
3、麦肯锡全球研究院(MGI)预测,到2020年,全球数据使用量预计达到35ZB(1ZB=1000EB,1EB=1000PB,1PB=1000TB,1TB=1000GB).
4、Google每天要处理的数据高达几百PB。百度每天处理数据几十PB。腾讯微信活跃用户数达7亿,每天产生的数据量上百TB,2016年除夕当日,微信红包的参与人数达到4.2亿人,收发总量达80.8亿个。
5、多源异构:描述同一主题的数据由不同的用户、不同的网站产生。网络数据有多种不同的呈现形式,如音视频、图片、文本等,导致网络数据格式上的异构性。
6、交互性:不同于测量和传感获取的大规模科学数据,微博等社交网络兴起导致大量网络数据具有很强的交互性。
7、时效性:在网络平台上,每时每刻都有大量新的网络数据发布,网络信息内容不断变化,导致了信息传播的时序相关性。
8:社会性:网络上用户根据自己的需要和喜好发布、恢复或转发信息,因为网络数据成了对社会状态的直接反应。
9、突发性:有些信息在传播过程中会短时间内引起大量新的网络数据与信息的产生,并使相关的网络用户形成网络群体,体现出网络大数据以及网络群体的突发特性。
10、高噪声:网络数据来自于众多不同的网络用户,具有很高的噪声。
二、Hadoop介绍
1、Hadoop是一个开源分布式计算平台架构,基于apache协议发布,由java语言开发。官方网址 http://Hadoop.apache.org
2、Hadoop两大核心组件:HDFS(分布式文件系统,为分布式计算提供了数据存储)和MapReduce(应用程序被分成许多小部分,而每个部分都能在集群中的任意节点上运行,一句话就是人物的分解和结果的汇总)。
3、另外两个模块:Common、YARN。
4、其他和Hadoop相关的项目:Ambari、Avro、Cassandra、Chukwa、Hbase、Hive、Mahout、Pig、Spark、Tez、ZooKeeper。
5、Hadoop支持有廉价的计算机搭建集群,有强大的冗余机制。
6、Hadoop在各大互联网企业中应用广泛,百度使用Hadoop进行搜索日志的分析和网页数据的挖掘工作;淘宝使用Hadoop存储并处理电子商务交易相关数据;facebook使用Hadoop进行数据分析和机器学习。
7、还有那些企业在使用Hadoop?可通过此站点进行查看:http://wiki.apache.org/Hadoop/PoweredBy
三、Hadoop组件和相关项目介绍
1、Common:为其他组件提供常用工具支持。
2、YARN:作业调度和集群管理的框架。
3、Ambari:是Apache Software Foundation中的一个项目。就Ambari的作用来说。就是创建、管理、监视Hadoop的集群,但是这里Hadoop是广义,指的是Hadoop整个生态圈(例如Hive,Hbase,ZooKeeper等)。用一句话来说,Ambari就是为了让Hadoop以及相关的大数据软件更容易使用的一个工具。Ambari下载安装方法:http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html
4、Avro:Avro是Hadoop中的一个子项目,也是Apache中一个独立的项目,Avro是一个基于二进制数据传输高性能的中间件,在Hadoop的其他项目中例如HBase(Ref)和Hive(Ref)的Client端与服务端的数据传输也采用了这个工具,Avro是一个数据序列化的系统,Avro可以将数据结构或对象转化成便于存储或传输的格式,Avro设计之初用来支持数据密集型应用,适合于远程或本地大规模数据的存储和交换。官方地址:http://www.open-open.com/lib/view/open1369363962228.html
5、Cassandra:可扩展的多主数据库,不存在单点故障。
6、Chukwa:是数据收集系统,用于监控和分析大型分布式系统的数据。
7、HBase:是一个分布式面向列的数据库。
8、Hive:最早由facebook设计,是建立在Hadoop基础之上的数据仓库,它提供了一些用于数据整理、特殊查询和分析在Hadoop文件中数据集工具。
9、Mahout:可扩展的机器学习和数据挖掘库。
10、Pig:是一种高级语言和并行计算可执行框架,他是对一个大型数据集分析和评估的平台。
11、Spark:一个快速和通用计算的Hadoop数据引擎。和MapReduce类似,但是要比MapReduce快,它提供了一个简单而丰富的编程模型,支持多种应用,包括ETL、机器学习、数据流处理、图形计算。参考文档:http://www.techweb.com.cn/network/system/2016-01-25/2267414.shtml
12、Tez:是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户,事实上他允许开发者为最终给用户构建性能更快、扩展性更好的应用程序。Hadoop传统上还有一些工作则不太适合MapReduce,例如机器学习,Tez的目的就是帮助Hadoop处理这些用例场景。
13、ZooKeeper:ZooKeeper是一组工具,用来配置和支持分布式调度,一个重要功能就是对所有节点进行配置的同步,他能处理分布式应用的“部分失败”问题,部分失败是分布式处理系统的固有特征,即发送者无法知道接受者是否收到消息,它的出现可能和网络传输问题、接受进程意外死掉等有关。ZooKeeper是Hadoop生态系统的一部分,但又远不止如此,它能支持更多类似的分布式平台和系统,如Jubatus,Cassender等等。