作业总结一

本文介绍了顺序表的插入运算算法,强调了在不同位置插入元素的效率差异。同时,对比了分布式系统与集群的概念,并详细解析了Hadoop框架,包括HDFS、YARN和MapReduce在内的重要组件及其在大数据处理中的作用。
摘要由CSDN通过智能技术生成

 一、数据结构与算法1:

1、插入操作

顺序表的插人运算是指在表的第i(1<=i<=n+1)个位置前插入一个新元素e,使长度为n的顺序表(e₁,…,eᵢ₋₁,e,eᵢ,…,eₙ)变成长度为n+1的顺序表(e₁,…,eᵢ₋₁,e,eᵢ,…,eₙ)(其中n为L的表长度)。

【算法思想】用顺序表作为线性表的存储结构时,由于结点的物理顺序必须和结点的逻辑顺序保持一致,因此必须将原表中位置n,n-1,…,i上的结点,依次后移到位置n+1,n,…,i+1上,空出第i个位置,然后在该位置上插入新结点e。当i=n+1时,是指在顺序表的末尾插入结点,所以无须移动结点,直接将e插入表的末尾即可。

【算法描述】顺序表的插入运算

#define OK 1
#define ERROR 0
int InsList(SeqList * L,int i,ElemType e)
/*在顺序表L中第i个数据元素之前插入一个元素e,i的合法取值范围是1<=i<=L->last+2 */
{
    int k;
    if((i<1)||(i>L->last+2))/*首先判断插入位置是否合法*/
    {   printf("插入位置i值不合法");
        ruturn(ERROR);
    }
    if(L->last>=MAXSIZE-1)
    {   printf("表已满,无法插入");
        ruturn(ERROR);
    }
    for(k=L->last;k>=i-1;k--)/*为插入元素而移动位置*/
        L->elem[k+1]=L->elem[k];
    L->elem[i-1]=e;/*在C语言的数组中,第i个元素的下标为i减1*/
    L->last++;
    return(OK);
}

【算法分析】当在表尾(i=L->last+2)插入元素时,因为循环的终值大于初值,此时不需要移动元素,可直接在表尾插入e。当在表头(i=1)插入元素时,移动元素的语句L->elem[k+1]=L->elem[k]需执行n次,即将表中已存在的n个元素依次后移一个位置才能将e插入。因此,语句L->elem[k+1]=L->elem[k]的语句执行频度与插入位置i有关。

设Eᵢₙₛ为在长度为n的表中插入一个元素所需移动的元素的平均次数,假设Pᵢ为在第i个元素之前插入元素的概率,并假设在任何位置上插入的概率相等,即Pᵢ=1/(n+1),i=1,2,...,n+1,则有

Eᵢₙₛ=

二、Hadoop入门:

(一)分布式系统与集群的区别

分布式系统和集群是两个不同的概念,它们在结构、资源管理和扩展性等方面存在差异。

分布式:分布式的主要工作是分解任务,将职能拆解,多个人在一起做不同的事
集群:集群主要是将同一个业务,部署在多个服务器上,多个人在一起做同样的事

总的来说,分布式系统强调的是将不同的业务分布在不同的地方,而集群则是将多台服务器集中在一起,实现同一业务。两者各有优势,选择使用哪种架构取决于具体的业务需求和技术目标。

注:Hadoop架构模式为主从模式(中心化模式)架构

(二)Hadoop框架

Hadoop是一个用于处理大规模数据集的开源软件框架,它以Java语言编写,能够在计算机集群上进行分布式计算和分析。其核心由以下组件构成:

1. HDFS(Hadoop Distributed File System):这是一个高度可靠、高吞吐量的分布式文件系统,设计用来存储非常大的文件,并提供高吞吐量的数据访问,以便在多台机器上运行数据处理任务。
2. YARN(Yet Another Resource Negotiator):它是一个作业调度和集群资源管理的框架,负责管理计算资源,在多个作业之间进行调度和分配。
3. MapReduce:这是一个编程模型,用于处理大量数据。它通过映射(Map)和归约(Reduce)两个主要阶段来处理数据,用户可以通过实现这两个接口来完成复杂的数据分析任务。

除了这些核心组件,Hadoop生态系统还包括一系列其他工具和项目,如Hive、Pig、HBase等,它们构建在Hadoop之上,提供了更高级的数据处理功能和更方便的用户界面。

Hadoop的优势在于其高可靠性、高扩展性和高效性。它能够处理PB级别的数据,并且可以在成千上万的节点上运行,这使得它在大数据时代成为了一个非常重要的工具。

Hadoop由两个主要的集群组成:HDFS集群和YARN集群。以下是关于这两个集群的详细介绍:

HDFS集群:负责海量数据的存储。它的角色主要包括NameNode、DataNode和SecondaryNameNode。其中,NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问;DataNode则负责处理文件系统的数据存储;SecondaryNameNode辅助NameNode进行元数据备份,以防止数据丢失。
YARN集群:负责海量数据运算时的资源调度。它的组件包括ResourceManager、NodeManager等。ResourceManager负责全局的资源调度,而NodeManager则是每台工作节点上的代理,负责启动和监控容器。

尽管HDFS和YARN在逻辑上是分离的,但在物理部署上它们通常部署在一起,以提高数据处理的效率和便捷性。这种设计允许Hadoop集群能够高效地处理大规模数据任务,同时也保证了系统的可扩展性和可靠性。

Hadoop集群搭建方式主要分为Standalone mode(单机模式)和Cluster mode(集群模式)。

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值