大数据导论:
大数据是指通过全球各种平台生成的所有数据。
大数据类别:
- 结构化的
- 非结构化
- 半结构化
大数据示例:
1)纽约交易所每天产生约1TB的新贸易数据。
2)社交媒体:统计数据显示,每天有500 TB以上的数据被摄入社交媒体网站Facebook的数据库中。
数据主要根据以下方面生成:
- 照片和视频上传
- 信息交流
- 注释
3)喷气发动机/旅行门户:
甲英格尔喷气发动机产生10+兆兆字节(TB以每天飞行30分钟的数据)。数据的生成高达数PB(PB)。
什么是Hadoop?
Hadoop是一个由Apache Software Foundation管理的开源框架。开源意味着它是免费提供的,其源代码可以根据用户要求进行更改。Apache Hadoop旨在有效地存储和处理大数据。Hadoop用于数据存储,处理,分析,访问,治理,操作和安全性。
拥有大量数据的大型组织使用Hadoop,并在大型商用硬件集群的帮助下进行处理。集群是指通过LAN连接的一组系统,该集群上的多个节点有助于执行Hadoop作业。Hadoop在管理大数据方面已在全球范围内广受欢迎,目前,它拥有近90%的市场份额。
Hadoop的功能
- 经济高效:Hadoop系统非常经济高效,因为它不需要任何专用硬件,因此投资少。对于系统而言,使用称为商品硬件的简单硬件就足够了。
- 支持大型节点集群:Hadoop结构可以由构成大型集群的数千个节点组成。大型集群有助于扩展存储系统并提供更多的计算能力。
- 数据的并行处理:Hadoop系统支持跨集群中所有节点的数据并行处理,因此减少了存储和处理时间。
- 数据分配(分布式处理):Hadoop可以在集群中的所有节点之间高效地分配数据。此外,如果特定节点正忙或无法运行,它会在整个群集上复制数据以便检索其他节点的数据。
- 自动故障转移管理(容错):Hadoop的一个重要功能是,如果群集中的节点发生故障,它可以自动解决问题。框架本身将故障系统替换为另一个系统,并在新计算机上配置复制的设置和数据。
- 支持异构群集:异构群集是一种用于说明来自不同供应商,不同操作系统,并在不同版本上运行的节点或计算机的群集。例如,如果Hadoop集群具有三个系统,一个在RHEL Linux上运行的Lenovo计算机,第二个是在Ubuntu Linux上运行的Intel计算机,第三个是在Fedora Linux上运行的AMD计算机,则所有这些不同的系统都能够同时运行在单个群集上运行。
- 可伸缩性:Hadoop系统具有从群集中添加或删除节点/节点和硬件组件的能力,而不会影响群集的操作。这是指可扩展性,这是Hadoop系统的重要功能之一。
Hadoop生态系统概述
其中包括:
- HDFS(Hadoop分布式文件系统)
- Apache MapReduce
- Apache Pig
- Apache HBase
- Apache Hive
- Apache Sqoop
- Apache Flume
- Apache Zookeeper
- Apache kafka
- Apache Oozie
HDFS(Hadoop分布式文件系统):HDFS在Hadoop框架中执行最重要的工作。它同时分发数据并将其存储在群集中存在的每个节点上。此过程减少了将数据存储到磁盘上的总时间。
MapReduce(使用MR将大数据集读入Hadoop /从Hadoop中写入大数据集):Hadoop MapReduce是系统的另一个重要部分,该系统处理集群中存储的大量数据。它允许并行处理HDFS存储的所有数据。而且,它通过集群中的大规模可伸缩性解决了处理成本高的问题。
Apache Pig (Pig是Hadoop生态系统的一种ETL):它是一种高级脚本语言,用于为Hadoop集群中的大型数据集编写数据分析程序。Pig使开发人员能够生成查询执行例程,以分析大型数据集。脚本语言称为Pig Latin,Pig的一个关键部分,第二个关键部分是编译器。
Apache HBase(OLTP / NoSQL)源:它是一个面向列的数据库,支持实时运行HDFS。它可以处理大型数据库表,即包含数百万行和列的文件。HBase的一个重要用途是有效使用主节点来管理区域服务器。
Apache Hive(Hive是Hadoop上的SQL引擎):通过类似SQL的界面,Hive允许对HDFS中的数据进行平方处理。SQL语言的Hive版本称为HiveQL。
Apache Sqoop(从RDBMS [SQL源]到Hadoop的数据导入/导出):它是一个应用程序,可帮助将数据从Hadoop导入和导出到其他关系数据库管理系统。它可以传输大量数据。Sqoop基于连接器体系结构,该体系结构支持插件以建立与新外部系统的连接。
Apache Flume(从未构造的数据(社交媒体网站)/构建到Hadoop的数据导入) :这是一个应用程序,它允许将流数据存储到Hadoop群集中,例如将数据写入日志文件就是流数据的一个很好的例子。
Apache Zookeeper(在集群环境中使用的协调工具):其作用是管理上述应用程序之间的协调,以使其在Hadoop生态系统中高效运行。
Hadoop的功能– HDFS守护程序
Hadoop系统基于主从架构的原理工作。
名称节点:它是主节点,在实体中为单个。它负责存储HDFS元数据,该元数据跟踪HDFS中存储的所有文件。元数据上存储的信息类似于文件名,文件具有的权限,文件的授权用户以及文件的存储位置。此信息存储在RAM中,通常称为文件系统元数据。
数据节点:它是从节点,并且存在多个数字。数据节点负责按照名称节点的指示存储和检索数据。数据节点会间歇性地向名称节点报告其当前状态以及与其一起存储的所有文件。数据节点在其中存储每个文件的多个副本。
次要名称节点:存在次要名称节点以支持主要名称节点存储元数据。在名称节点由于元数据损坏或任何其他原因而发生故障时,辅助名称节点可防止整个群集发生故障。
辅助名称节点指示名称节点创建并发送fsimage和editlog文件,然后由辅助名称节点创建压缩的fsimage文件。然后,将压缩后的文件传输回tge名称节点,并将其重命名。该过程或者每小时重复一次,或者当editlog文件的大小超过64MB时重复一次。