大数据技术之 Hadoop(入门详解)

大数据技术之 Hadoop(入门详解)

大家好!在为您带来精彩的技术干货之前,先给您推荐一个我精心运营的公众号[大数据深度洞察]。在这里,您将获取更多独家的技术分享、实用案例以及行业前沿资讯。
亲爱的读者们,当您准备开启这篇充满价值的技术文章之旅时,不妨先关注我的公众号[大数据深度洞察]。它是您在技术领域不断成长的好伙伴。
在这里插入图片描述

一、Hadoop 概述

1.1 Hadoop 是什么

Hadoop 是一个用于处理大规模数据的分布式计算框架。

它具有以下特点和功能:

  1. 能够处理海量的数据,包括PB级甚至更大规模的数据量。
  2. 采用分布式存储和计算的方式,将数据分布在多个节点上进行存储和处理,提高了系统的可靠性和扩展性。
  3. 包含了多个核心组件,如分布式文件系统 HDFS 用于数据存储,资源管理器 YARN 用于资源分配,以及计算模型 MapReduce 用于数据处理等。

Hadoop 为企业和组织提供了一种高效、可靠且经济的方式来处理和分析大规模数据,从而挖掘出有价值的信息和洞察。

1.2 Hadoop 发展历史(了解)

Hadoop 最初是由Doug Cutting 开发的。它的灵感来源于 Google 的两篇论文,分别是关于分布式文件系统(GFS)和分布式计算模型(MapReduce)。

2006 年,Hadoop 作为 Apache 的顶级项目正式启动。

在早期,Hadoop 的功能相对简单,但随着时间的推移,不断得到改进和完善。

在发展过程中,Hadoop 吸引了众多开发者和企业的关注和参与,逐渐形成了一个活跃的开源社区。

它不断引入新的特性和改进,以适应不断增长的数据处理需求和技术发展趋势。

随着大数据技术的快速发展,Hadoop 也在不断演进,其生态系统不断丰富,包括了众多相关的组件和工具,如 Hive、HBase、Spark 等。

如今,Hadoop 已经成为大数据处理领域中最具影响力的技术之一。

1.3 Hadoop 三大发行版本(了解)

Hadoop 主要有三大发行版本:Apache、Cloudera 和 Hortonworks。

  • Apache Hadoop:这是最原始也是最基础的版本,于 2006 年推出,对于初学者入门学习而言是非常不错的选择。
  • Cloudera Hadoop:Cloudera 成立于 2008 年,是最早将 Hadoop 进行商用的公司。它为合作伙伴提供全面的 Hadoop 商用解决方案,涵盖支持、咨询服务以及培训等方面。
    • 官网地址:https://www.cloudera.com/downloads/cdh
    • 下载地址:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html
    • 2009 年,Hadoop 的创始人 Doug Cutting 也加盟了 Cloudera 公司。Cloudera 的主要产品包括 CDH、Cloudera Manager 和 Cloudera Support。其中,CDH 是完全开源的 Hadoop 发行版,在兼容性、安全性和稳定性方面相较 Apache Hadoop 有显著提升。不过,Cloudera 对其的标价为每年每个节点 10000 美元。此外,Cloudera Manager 作为集群的软件分发及管理监控平台,能够在短短几个小时内完成一个 Hadoop 集群的部署,并对集群的节点及服务进行实时监控。
  • Hortonworks Hadoop:Hortonworks 于 2011 年由雅虎与硅谷风投公司 Benchmark Capital 合资组建。
    • 官网地址:https://hortonworks.com/products/data-center/hdp/
    • 下载地址:https://hortonworks.com/downloads/#data-platform
    • 公司成立之初,吸纳了大约 25 至 30 名专门研究 Hadoop 的雅虎工程师,这些工程师从 2005 年就开始协助雅虎开发 Hadoop,贡献了 Hadoop 约 80%的代码。Hortonworks 的主打产品是 Hortonworks Data Platform(HDP),这也是 100%开源的产品。HDP 除了常见的项目外,还包括了 Ambari 这款开源的安装和管理系统。值得一提的是,2018 年 Hortonworks 已被 Cloudera 公司收购,并推出了新的品牌 CDP。
1.4 Hadoop 优势(4 高)
  1. 高可靠性:Hadoop 基于分布式架构,数据被存储在多个节点上,并通过副本机制确保数据的可靠性。即使某个节点出现故障,数据仍然可以从其他副本中恢复,不会导致数据丢失。
  2. 高扩展性:能够轻松地扩展集群的规模,通过添加新的节点,可以增加存储容量和计算能力,以处理不断增长的数据量和计算需求。
  3. 高效性:采用并行处理技术,能够同时处理大量的数据,提高数据处理的效率。特别是在处理大规模数据时,其优势更加明显。
  4. 高容错性:在任务执行过程中,如果某个节点或任务出现错误,Hadoop 能够自动重新分配任务,确保整个计算任务的顺利完成,不会因为个别错误而导致整个系统的崩溃。

这些优势使得 Hadoop 成为处理大规模数据的理想选择,能够满足企业和组织在大数据时代对数据处理的需求。

1.5 Hadoop 组成(面试重点)
  • Hadoop Distributed File System(HDFS):这是一个分布式文件系统,为大数据存储提供了可靠的解决方案。
  • YARN 架构概述:Yet Another Resource Negotiator(YARN)是 Hadoop 的资源管理器,负责资源的分配和调度。
  • MapReduce 架构概述:MapReduce 将计算过程分为 Map 和 Reduce 两个阶段。在 Map 阶段,数据被并行处理;而在 Reduce 阶段,对 Map 阶段的结果进行汇总。
  • HDFS、YARN、MapReduce 三者关系:它们相互协作,共同构成了 Hadoop 强大的数据处理架构。
1.6 大数据技术生态体系

大数据技术生态体系丰富多样,包含了众多重要的组件和工具:

  • Sqoop:一款开源工具,主要用于在 Hadoop、Hive 与传统数据库(如 MySQL、Oracle 等)之间进行数据的传递。它能够将关系型数据库中的数据导入到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导出到关系型数据库。
  • Flume:这是一个高可用、高可靠的分布式海量日志采集、聚合和传输系统。Flume 支持在日志系统中定制各类数据发送方,以便有效地收集数据。
  • Kafka:作为一种高吞吐量的分布式发布订阅消息系统,在数据传输和处理中发挥着重要作用。
  • Spark:当前最流行的开源大数据内存计算框架之一,可以基于 Hadoop 上存储的大数据进行高效计算。
  • Flink:同样是热门的开源大数据内存计算框架,在实时计算的场景中应用较为广泛。
  • Oozie:这是一个用于管理 Hadoop 作业(job)的工作流程调度管理系统,能够有效地安排和执行复杂的任务流程。
  • HBase:这是一个分布式的、面向列的开源数据库。与传统的关系数据库不同,HBase 更适合于非结构化数据的存储。
  • Hive:基于 Hadoop 的数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能。它可以将 SQL 语句转换为 MapReduce 任务进行运行,具有学习成本低的优点,能够通过类 SQL 语句快速实现简单的 MapReduce 统计,无需开发专门的 MapReduce 应用,非常适合数据仓库的统计分析。
  • ZooKeeper:这是一个针对大型分布式系统的可靠协调系统,提供的功能包括配置维护、名字服务、分布式同步、组服务等,确保了分布式系统的稳定运行。
1.7 推荐系统框架图

在这里插入图片描述

二、Hadoop 运行环境搭建(开发重点)

2.1虚拟机环境准备
  1. 安装模板虚拟机,设置 IP 地址为 192.168.10.100、主机名称为 hadoop10、内存 4G、硬盘 50G。
  2. hadoop10 虚拟机配置要求如下(本文 Linux 系统全部以 CentOS-7.5-x86-1804 为例)
    • 使用 yum 安装需要虚拟机可以正常上网,yum 安装前可以先测试下虚拟机联网情况:
    [root@hadoop10 ~]# ping www.baidu.com

    PING www.baidu.com (14.215.177.39) 56(84) bytes of data.

    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=8.60 ms

    64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=7.72 ms
  • 安装 epel-release:

注:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方 repository 中是找不到的)

    [root@hadoop10 ~]# yum install -y epel-release
  • 注意:如果 Linux 安装的是最小系统版,还需要安装如下工具;如果安装的是 Linux 桌面标准版,不需要执行如下操作
    • net-tool:工具包集合,包含 ifconfig 等命令
[root@hadoop10 ~]# yum install -y net-tools 
  • vim:编辑器
[root@hadoop10 ~]# yum install -y vim
  • 关闭防火墙,关闭防火墙开机自启
[root@hadoop10 ~]# systemctl stop firewalld

[root@hadoop10 ~]# systemctl disable firewalld.service

注意:在企业开发时,通常单个服务器的防火墙是关闭的。公司整体对外会设置非常安全的防火墙

  • 创建 lzl 用户,并修改 lzl 用户的密码
    [root@hadoop10 ~]# useradd lzl

    [root@hadoop10 ~]# passwd lzl
  • 配置 lzl 用户具有 root 权限,方便后期加 sudo 执行 root 权限的命令
    [root@hadoop10 ~]# vim /etc/sudoers

修改 /etc/sudoers 文件,在 %wheel 这行下面添加一行,如下所示:

    ## Allow root to run any commands anywhere

    root   ALL=(ALL)   ALL

    ## Allows people in group wheel to run all commands

    %wheel  ALL=(ALL)    ALL

    lzl  ALL=(ALL)   NOPASSWD:ALL

注意:lzl 这一行不要直接放到 root 行下面,因为所有用户都属于 wheel 组,你先配置了 lzl 具有免密功能,但是程序执行到 %wheel 行时,该功能又被覆盖回需要密码。所以 lzl 要放到 %wheel 这行下面。

  • 在 /opt 目录下创建文件夹,并修改所属主和所属组
    • 在 /opt 目录下创建 module、software 文件夹
        [root@hadoop10 ~]# mkdir /opt/module

        [root@hadoop10 ~]# mkdir /opt/software
  • 修改 module、software 文件夹的所有者和所属组均为 lzl 用户
  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值