hadoop

本文介绍了Hadoop的基础概念,包括其在大数据处理中的核心组件HDFS和MapReduce,强调了Hadoop的高可靠性、扩展性和高效性。此外,详细讲解了HBase的特点和与传统数据库的区别,以及Hadoop的三种安装方式,适合初学者和专业人士参考。
摘要由CSDN通过智能技术生成

一、什么是hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要用于处理和分析大数据。它允许用户使用简单的编程模型跨大量计算机集群对大规模数据集进行分布式处理。Hadoop的核心设计是提高数据处理速度,同时确保高度的容错性,以便在由普通硬件构建的大型集群上处理海量的数据。

Hadoop主要由以下几个核心组件组成:

  1. Hadoop Distributed File System (HDFS): 这是一个高度容错性的分布式文件系统,设计用来部署在低廉的硬件上。HDFS将数据分散存储于集群中的多个节点上,并提供高吞吐量的数据访问能力。

  2. MapReduce: 这是一个编程模型,也是Hadoop处理大数据的核心组件。MapReduce允许开发人员编写两个函数——一个用于映射(Map)操作,一个用于归约(Reduce)操作,以处理分布在集群中的数据。

Hadoop还具有其他一些工具和组件,如HBase(一个分布式、可扩展的、大数据存储系统),Hive(一个构建在Hadoop之上的数据仓库工具,提供SQL查询功能),以及ZooKeeper(一个为分布式应用程序提供一致性服务的开源项目)等。

Hadoop的主要优势在于:

  • 扩展性:Hadoop可以运行在由大量廉价硬件构成的集群上,并可以动态地添加更多的节点以扩展计算能力。
  • 容错性:Hadoop通过数据冗余和复制机制,确保即使集群中部分节点发生故障,数据也不会丢失,并且计算可以继续进行。
  • 并行处理:Hadoop可以并行处理大量数据,从而显著提高处理速度。

二、hadoop的特点

  1. 高可靠性:Hadoop的设计目标之一就是保证数据的高可靠性。它通过数据冗余存储、副本备份以及容错机制,确保在硬件故障或数据丢失的情况下,系统仍然能够保持正常运行并恢复数据。这种高可靠性使得Hadoop成为处理关键业务数据的理想选择。

  2. 高扩展性:Hadoop是一个高度可扩展的系统。它可以运行在由数百台到数千台普通计算机组成的集群上,并能够随着集群规模的扩大而线性地提高处理能力。这使得Hadoop能够轻松应对大数据处理的需求,无论是处理TB级别还是PB级别的数据。

  3. 高效性:Hadoop通过并行处理的方式,可以高效地处理大数据。它将大数据划分为多个小的数据块,并在集群中的多个节点上并行处理这些数据块,从而大大加快了处理速度。此外,Hadoop还通过优化数据布局和访问方式,提高了数据处理的效率。

  4. 高容错性:Hadoop能够自动检测和处理硬件故障,确保集群的稳定运行。当集群中的某个节点发生故障时,Hadoop会自动将数据迁移到其他正常运行的节点上,从而保持数据的完整性和可用性。这种高容错性使得Hadoop能够在不稳定的环境中稳定运行,并减少数据丢失的风险。

  5. 低成本:Hadoop是一个开源项目,可以免费使用和修改。此外,它可以在普通的硬件上运行,无需昂贵的专用硬件支持。这使得Hadoop成为了一个低成本的解决方案,适用于各种规模的企业和组织。

  6. 易用性:Hadoop提供了丰富的编程接口和工具,使得开发人员能够轻松地构建和部署大数据应用程序。此外,Hadoop还提供了丰富的数据分析和可视化工具,使得用户可以方便地查看和理解处理结果。

三、 HDFS简介及架构

HDFS(Hadoop Distributed File System)是Hadoop项目的一个核心组件,被设计成适合运行在通用硬件上的分布式文件系统。它与其他分布式文件系统有很多共同点,但也有很多显著的区别。以下是HDFS的主要特点和架构的简要介绍:

HDFS的主要特点

  1. 高容错性:HDFS设计用来部署在低廉的硬件上,并具有高度的容错性,即使在硬件故障的情况下也能保证数据的可靠性和可用性。
  2. 高吞吐量:HDFS提供高吞吐量的数据访问,非常适合处理大规模数据集的应用程序。
  3. 流式数据访问:HDFS放宽了POSIX的要求,允许以流的形式访问文件系统中的数据,这对于大数据处理非常有效。

HDFS的架构

HDFS采用主从(Master/Slave)架构,主要由以下几个组件构成:

  1. NameNode:NameNode是HDFS的主节点,负责管理文件系统的命名空间和客户端的访问请求。它维护了文件系统的目录树和文件到数据块的映射关系。NameNode还负责数据块的复制,周期性地从集群中的每个DataNode接收心跳信号和块状态报告,以确保DataNode的正常工作。
  2. DataNode:DataNode是HDFS的从节点,负责存储和检索文件数据。它们接受来自客户端的读写请求,从本地磁盘或网络中的其他DataNode上读取或写入数据块。数据块和副本存放在哪些DataNode上是由NameNode决定的。
  3. Secondary NameNode:Secondary NameNode是NameNode的热备,当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务。Secondary NameNode的主要作用是辅助NameNode,分担其工作量,比如定期合并fsimage和edits,并推送给NameNode。
  4. Client:Client即客户端,负责文件上传给HDFS时进行文件切分,与NameNode交互以获取文件的位置信息,以及与DataNode交互以读取或写入数据。Client还提供了一些命令来管理和访问HDFS。

在HDFS中,文件被分割为若干个数据块,这些数据块并不一定存储在相同的数据节点上。NameNode管理这些数据块映射信息,处理客户端的读写请求。DataNode存储实际的数据块,数据块副本默认为3,数据块的大小默认为128MB。这种设计有助于实现数据的冗余和可靠性,提高数据访问的效率和容错性。

总的来说,HDFS是一个高度容错性、高吞吐量的分布式文件系统,适合处理大规模数据集。其主从架构和数据块设计使得它能够在分布式环境中高效地存储和访问数据

四、MapReduce

MapReduce是一种编程模型和计算框架,主要用于处理大规模数据集(大于1TB)的并行运算。它的核心思想来源于函数式编程语言和矢量编程语言,主要包括“Map(映射)”和“Reduce(归约)”两个主要阶段。

在Map阶段,输入数据被切分成多个小的数据块,并由多个并行的Map任务进行处理。每个Map任务将输入数据块映射为一系列键值对。这些键值对被传递给Reduce任务进行处理。

在Reduce阶段,所有具有相同键的键值对被分组在一起,并由多个并行的Reduce任务进行处理。每个Reduce任务将一组键值对作为输入,并根据具体的业务逻辑进行处理和聚合,生成最终的输出结果。

MapReduce框架采用了Master/Worker架构,其中Master节点负责协调整个系统的运行,而Worker节点则负责执行具体的计算任务。这种架构使得MapReduce能够有效地利用分布式计算集群的计算资源,并自动处理节点故障等问题。

MapReduce编程模型使得编程人员可以在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。其易于编程、良好的扩展性、高容错性以及适合处理PB级以上海量数据的特性,使得MapReduce在数据挖掘、搜索引擎、图像处理、网络日志分析等领域得到了广泛应用。

五:什么是HBase

(1)BigTable是一个分布式存储系统,利用基于C语言的MapReduce分布式计算模型处理少量数据,使用GFS分布式文件系统作为底层数据存储方式,具备广泛应用性、可靠性、高性能和高可用性等特点。 HBase是BigTable的开源实现。HBase是一个基于Java、开源的、高可靠、高性能、面向列、可伸缩的列式非关系型数据库,也可以称为列式分布式数据库,或简称为分布式数据库。 HBase的目标是存储并处理海量的非结构化和半结构化的松散数据,旨在仅使用普通的硬件配置,即可处理由成千上万的行和列组成的海量数据。

(2) HBase的特点:

海量存储。HBase通过多台廉价的机器实现存储PB级别的海量数据,并且可以在几十毫秒或几百毫秒内返回数据。

面向列。HBase面向列进行存储和权限控制,并支持独立检索。HBase是根据列族存储数据的,一个列族下可以有多列,列族在创建表时必须指定,并且可以单独对列进行各种操作。

多版本。HBase中表的每一个列的数据存储都有多个Version(版本,即同一条数据插入不同的时间戳)。虽然每一列对应着一条数据,但是有的数据会对应多个版本。例如,存储个人信息的HBase表中,如果某个人多次更换过家庭住址,那么记录家庭住址的数据会将有多个版本。

稀疏性。HBase的稀疏性主要体现出HBase列的灵活性。在列族中,可以指定任意多个列,在列数据为空的情况下,是不会占用存储空间的。

易扩展性。HBase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。HBase的底层依赖HDFS,当磁盘空间不足时,可以动态增加机器(即DataNode节点服务)解决,从而避免进行数据的迁移。

高可靠性。由于HBase底层使用的是HDFS,而HDFS的分布式集群具有备份机制,副本(Replication)机制能够保证数据不会发生丢失或损坏。

(3) HBase与传统数据库的区别:

数据类型:

关系型数据库采用关系模型,具有丰富的数据类型和存储方式。HBase则采用了更加简单灵活的数据模型,将数据存储为未经解释的字符串,用户可以将不同格式的结构化数据和非结构化数据都序列化成字符串保存至HBase中,用户再需要编写程序将字符串解析成不同的数据类型。

 数据操作:

关系型数据库中提供了丰富的操作,如插入、删除、更新、查询等,一些操作会涉及复杂的多表连接,通常需要借助于多个表之间的主外键关联实现。HBase提供的操作则不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等。

存储模式 :

关系型数据库是基于行模式存储的,元组或行会被连续地存储在磁盘中。在读取数据时,需要顺序扫描每个元组,再从中筛选查询出所需要的数据。如果每个元组只有少量字段的值且查询操作是有用的,那么基于行模式存储会浪费许多磁盘空间和内存带宽。 HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的,优点是可以降低I/O开销,支持大量并发用户查询(因为仅需要处理与查询结果相关的列,而不需要处理与查询无关的大量数据行);同一个列族中的数据会被一起压缩(同一列族内的数据相似度较高,因此可以获得较高的数据压缩比)。

数据索引 :

关系型数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。与关系型数据库不同的是,HBase只有一个索引——行键。由于HBase位于Hadoop框架之上,所以可以使用Hadoop MapReduce快速、高效地生成索引表。

数据维护 :

在关系型数据库中,更新操作会用最新的当前值去替换记录中原来的值(旧值),旧值被覆盖后就不会存在。而在HBase中执行更新操作时,并不会删除旧版本的数据,而是生成一个新版本的数据,旧版本的数据仍然保留。

 可伸缩性:

关系型数据库很难实现横向扩展,纵向扩展的空间也比较有限。相反,HBase和BigTable分布式数据库是为了实现灵活的横向扩展而开发的,因此能够轻易地通过在集群中增加或减少硬件数量实现性能的伸缩。 但是,相对关系型数据库,HBase也有自身的局限性,如HBase不支持事务,因此无法实现跨行的原子性

七:Hadoop的三种安装方式

(1)独立(本地)运行模式:

  1. 将Hadoop安装包直接解压到某个路径即可
  2. 无需运行,故不会有Hadoop相关进程在实时运行
  3. 用在开发、测试场景。

(2)伪分布式运行模式:

  1. 在一个节点/机器上部署Hadoop
  2. 需要将Hadoop相关进程都运行起来
  3. 一般用在学习、开发、测试等场景

(3)完全分布式模式:

  1. 在多个节点部署Hadoop,一般至少3个节点
  2. 生产环境、测试环境
  3. 部署难度相对较高

进入超级用户:

  • 查看并修改配置文件,命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 点击键盘i键,更改当前编辑模式,切换为输入模式insert
  • 修改文件,如下:

重启网卡服务:service network restart

查看防火墙状态,命令:systemctl status firewalld

    • active(running)表示防火墙在启动状态
    • 关闭防火墙,命令:systemctl stop firewalld

禁止防火墙开机自启,命令:systemctl disable firewalld

设置主机名:hostnamectl set-hostname 804787-hadoop01

安装JAVA

使用命令,java -version,检查原本系统自带jdk

卸载自带jdk,命令:rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

拖拽方式,上传安装包到Linux的/opt目录下:

使用cd命令进入/opt并解压文件到/opt下,命令:tar -xzvf jdk-8u221-linux-x64.tar.gz -C /opt

使用cd命令进入到jdk解压后文件夹,用pwd查看路径,并使用鼠标复制路径/opt/jdk1.8.0_221

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值