首页 > 编程知识 正文

hadoop概述,hadoop如何使用

时间:2023-05-06 19:34:05 阅读:51496 作者:1613

Hadoop基础知识分布式思想大数据部门第一章Hadoop概念1、核心组件2、Hadoop相关项目第二章Hadoop架构1、前提和设计目标2、HDFS架构3、YARN架构4、MapReduce核心

分裂统治

单体处理大数据问题

需求:

有一个非常大的文档(1TB ),里面有几百亿行,只有两行内容相同,出现在未知的地方,需要找到它们。 硬件:一台机器,可用内存少,只有500MB的思维:

假设一次读取I/o速度为500MB/S1T的文件需要大约30分钟的循环遍历需要n次I/o时间分段思想,这样可以将时间减少到两次I/o解决方案。

分为2000个文件块readLine读取各行,在哈希运算存储器中进行比较运算需求:1TB的文件从小到大排序方法

思考:

对下一行的每一行进行hashcode,根据区间分为不同的块,将大于1000的和2000以下的放入1 (号码1的块)。 将每个块的500米内容一次读取到内存中,在内存中对该文件块进行排序,然后快速进行排序。 依次取第二个块这样执行。 内外均对需求进行排名:实现分、秒水平的方法。

解决方案1:*可用内存为500MB的机器

解决方案2 :集群分散

大数据部门大数据部门业务流程分析:

产品提交需求(汇总总用户数、每日活动用户数、回流用户数等)数据部门数据平台构建、分析数据指标数据可视化(报告展示、邮件发送、大屏幕展示等) ) )。

第一章Hadoop概念Spark逐渐取代MapReduce成为Hadoop的默认执行引擎。

Hadoop是由Apachefoundation开发的分布式系统基础架构。 主要解决海量数据的存储和海量数据的分析计算问题。 广义上,Hadoop通常指的是更广泛的概念——Hadoop生态圈。

Apache硬件

官方地址: http://Hadoop.Apache.org/releases.html

下载地址: https://archive.Apache org/dist/Hadoop/common/Hadoop优势(4高) ) ) ) ) ) ) ) ) )。

可靠性:由于Hadoop的基础存储多个数据副本,因此即使Hadoop计算元素或存储出现故障,数据也不会丢失。 高可扩展性:在群集之间分配任务数据,方便地扩展数千个节点。 效率:在MapReduce的思想下,Hadoop并行工作以提高任务的处理速度。 容错能力:允许自动重新分配失败的任务。 1、核心组件Hadoop1.x与Hadoop2.x的区别

hadoop通用组件hadoop公用

包含供其他hadoop模块使用的库文件和工具

分布式文件系统- hadoopdistributedfilesystem (HDFS )。

在通用硬件上运行的分布式文件系统。 吞吐量高,可靠性高。 存储人员

资源管理组件- Hadoop YARN

YARN是资源调度

分布式计算框架-硬件映射

用于处理超大数据集计算的MapReduce编程模型实现

Hadoop的三个主要组件: HDFS分布式文件系统、MapReduce分布式计算框架和Yarn群集资源管理系统

2、hadoop相关项目Apache Ambari是一个基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。 Apache Ambari支持集中管理,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeepr、Sqoop和Hcatalog。 它也是五大顶级hadoop管理工具之一。 Avrom :数据序列化系统Cassandra是一个开源分布式NoSQL数据库系统。 最初由Facebook开发,用于存储收件箱等简单格式的数据。 将谷歌bigtab1e的数据模型与亚马逊动态完全分布式的体系结构集成,Facebook于2008年开放了Cassandra。(国内用的比较多的是HBase)chukwa是用于监测开源大规模分布式系统的数据收集系统。 它构建在hadoop的HDES和MapReduce框架之上,继承了hadoop的可伸缩性和健壮性。 chukwa还包括一组强大、灵活的工具,用于查看、监视和分析收集的数据。 hive是一个基于Hadoop的数据仓库工具,它提供了将结构化数据文件映射到数据库表并将sql语句转换为MapReduce任务并执行的简单sql查询功能。 Apache Pig是一种高级流程语言,适用于使用Hadoop和MapReduce平台查询大型半结构化数据集。 通过允许对分布式数据集进行类似SQL的查询,Pig可以简化Hadoop的使用。 Apache Spark是为大数据处理而设计的快速通用的计算引擎Spark是一个通用并行框架,如UC Berkeley AMP lab的开源Hadoop MapReduce,由MapReduce拥有但是,通过将作业中间输出结果保存在存储器中

不再需要读写HDFS,因此Spark 能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。HBase是一个分布式的、高可靠性、高性能、面向列、可伸缩的分布式存储系统,该技术来源于Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统"。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。
(存储在HDFS,属于nosql 非关系) 第二章 Hadoop架构 1、前提和设计目标

1、硬件错误

硬件错误是常态而不是异常HDFS可能由成百上千的服务器所构成,单机故障概率的存在意味着总有一部分服务器不工作的。错误检测和快速自动恢复是HDFS最核心架构目标。

2、流式数据访问

运行在HDFS上的应用需要流式访问它们的数据集。HDFS的设计重点是批处理,而不是交互处理。是高吞吐量而不是低延迟。(批处理:数据积攒到一定量开始计算。 流处理:流水生产线。)为了提高数据的吞吐量,在关键方面修改POSIX的语义

3、大规模数据集

HDFS上的一个典型文件大小一般都在G字节至T字节。 TB PB ZBHDFS支持大文件存储单一HDFS实例能支撑数以千万计的文件。

4、简单的一致性模型

HDFS应用遵循“一次写入多次读取”的文件访问模型。简化了数据一致性问题,并且使吞吐量的数据访问成为可能。Map/Reduce应用或者网络爬虫应用都非常适合这个模型。

5、移动计算比移动数据更划算

降低网络阻塞的影响,提高系统数据的吞吐量。将计算程序发送到数据所在的主机,让GB级别TB级别的数据移动更便捷

6、异构软硬件平台间的可移植性

HDFS在设计的时候就考虑到平台的可移植性这种特性方便了HDFS作为大规模数据应用平台的推广 2、HDFS架构

问题:
100台服务器,存储空间单个100GB,总共10T
5T文件如何存储?
128MB一块,128MB * 8 = 1GB,128 * 8 * 1024=1TB

128B(字节),KB,MB


1)NameNode(nm):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和

3)Secondary NameNode(2nm):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

3、YARN架构

Container主要是为App Mst服务,因为Job想运行,需要资源

4、MapReduce架构

MapReduce将计算过程分为两个阶段:Map和Reduce,
1)Map阶段并行处理输入数据,分发
2)Reduce阶段对Map结果进行汇总

大数据技术生态体系

Spark Streaming 实时批处理计算
Storm 实时计算

图中涉及的技术名词解释如下:
1)Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
2)Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:
(1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
(2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
(3)支持通过Kafka服务器和消费机集群来分区消息。
(4)支持Hadoop并行数据加载。
4)Storm:Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。
5)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
6)Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。
7)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
8)Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
10)R语言:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
11)Mahout:Apache Mahout是个可扩展的机器学习和数据挖掘库。
12)ZooKeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。